Jam*_*111 4 postgresql android database-design push-notification ios
我们正在为我们的应用程序设置推送通知,并发现如果我们将用户设备令牌存储在用户表中,我们会遇到一些问题。
我们的用户表:
| id (user pk) | ... other fields | device_token (for push notifs) |
Run Code Online (Sandbox Code Playgroud)
其他 2 个解决方案是:
我想知道其他人如何做到这一点以及这些解决方案是否可以以任何方式改进?
不清楚您使用的是什么数据库,但如果它是关系型的(如 MySQL),那么 JSON 数组将违反良好数据库设计的第一种正常形式。而且在我看来,这是一个非首发。
考虑到您说您只会向一个设备发送推送通知,在用户表上存储单个设备 ID 是一个不错的解决方案。但在我看来,这种方法有两个缺点(不是说它错了,而是要考虑的事情):
app_version。扩展这个进一步的(date_last_notified?device_type?等),你突然增加了很多额外的列来可能不涉及用户实体清楚你的用户表。这将违反关系数据库设计的第二范式,因为您的新用户列将不再描述用户实体。用于引用用户的设备 ID 的额外表确实增加了一些复杂性,但这正是关系数据库的设计目的。
我的建议是现在给它一个单独的表,但是如果你打算用用户表上的一个列来构建它也很好 - 在重构的时候做好准备(并且无所畏惧)。
| 归档时间: |
|
| 查看次数: |
2193 次 |
| 最近记录: |