我的网站支持注册用户和非注册用户之间的通信。我正在尝试确定在数据库中存储非注册用户的最佳实践。我的初始架构如下:
Users
------------
user_id
device_id *Unique* (this is for mobile app users)
email *Unique*
phone *Unique*
first_name
last_name
image_url
date_joined
UserNames (Users have custom names for each group potentially)
-------------
name_id
user_id
group_id
first_name
last_name
该应用程序如何工作的更多详细信息:
- 用户注册并创建包括注册和非注册用户的组/列表
- 然后将消息发送给组/列表的成员
- 注意:注册用户可以在未经他们明确批准的情况下将非注册用户添加到列表中。
我选择上面列出的设计是因为电子邮件、电话号码和设备 ID 是唯一的。但是,用户可能对每个用户有不同的名称/昵称,因此 UserNames 表。但是,我不清楚存储非注册用户是否应该存储在用户表中,因为他们在技术上不是网站的注册用户。
我应该将未注册/外部用户存储在单独的表中吗?如果您需要我澄清任何事情,请告诉我。