【发布时间】:2018-03-12 03:06:00
【问题描述】:
我有一个表'Token',一个'User'可以有多个'Token',而一个'Token'只能属于1x'User',我可以用hasMany()&belongsTo()这个关系,但是每次用户从android&iOS注销时,都会删除令牌行记录,并且在用户登录时,会在表中添加新的令牌记录,因此会消耗和浪费递增的主键,所以我想知道我是否应该删除主键并改用 Laravel Query Builder?因为 Laravel Eloquent 没有主键就不能正常工作?
【问题讨论】:
-
是否需要从表中删除记录?否则,您可以在注销时将 token 设置为 null 并在登录时更新,如果它尚不存在,则制作一个 token 记录。对我来说似乎更简单。
-
如果我有多个空记录怎么办?因此,如果“用户”有 3 个不同的 android GCM 令牌并在 2x 上注销,那么我应该 NULL 2 记录吗?如果稍后同一用户再次登录,我将更新其中一个 NULL 记录,如果没有找到 NULL 记录,它会创建一个新记录?
-
我会说你每个(令牌类型?)只有一个令牌。更新与令牌绑定的记录以及它是什么类型的令牌作为 where 条件。对于类型,您也许可以使用 ENUM,但我不确定情况有多复杂。因为我现在不确定为什么用户可以拥有多个令牌。
-
用户可以从多个Android或iOS设备登录,不同的设备会各自生成不同的token,所以如果一个用户当前登录到2x android或ios设备,当GCM/APNS推送通知是发送,两个设备都会收到它
标签: mysql laravel push-notification eloquent laravel-query-builder