-1

我的网站支持注册用户和非注册用户之间的通信。我正在尝试确定在数据库中存储非注册用户的最佳实践。我的初始架构如下:

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 表。但是,我不清楚存储非注册用户是否应该存储在用户表中,因为他们在技术上不是网站的注册用户。

我应该将未注册/外部用户存储在单独的表中吗?如果您需要我澄清任何事情,请告诉我。

4

1 回答 1

2

您是否将未注册用户隔离到他们自己的表中是一个设计决策,可能只有您可以回答。这可能取决于在整个应用程序中如何使用这些不同的用户类型。它可能很简单,例如使用带有 0 或 1 值的 tinyint 字段来指示用户已注册。

于 2012-08-07T17:44:23.540 回答