在数据库中存储外部/未经身份验证的用户的正确方法是什么?

时间:2012-08-07 17:40:04

标签: mysql sql database postgresql activerecord

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

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

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

1 个答案:

答案 0 :(得分:2)

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