我的网络应用程序将有两种类型的用户100%不同 - 在网站上的字段,功能和用途。一类用户的目的是发布博客,另一类用户的目的是阅读它们并“跟随”海报。
他们共同的唯一东西是需要id,电子邮件,密码和其他一些元数据,如加入日期等。
我是否应该尝试从同一个帐户表中删除它们,或者为每个帐户表创建一个表?
备注
- 可以考虑的一个潜在的事情是,为了防止用户混淆,我认为这两种帐户之间的电子邮件应该是唯一的。
- 除了普通的“帐户”元数据之外,读者和作者将需要存储不同的数据集。
答案 0 :(得分:4)
我会将它们分开。
TABLE User {
id
email
password
salt
created
modified
}
TABLE follower {
user_id
...
}
TABLE author {
user_id
...
}
随着时间的推移,您的应用程序将会增长。也许现在你有两个命运角色 - 但它可能会在未来发生变化。您可能会有作者也跟随其他作者,或者“升级”为作者的粉丝。您可能还会开始添加其他“角色”,并希望这样:
TABLE user_role {
user_id
role_id
}
TABLE role {
id
name
}
答案 1 :(得分:3)
定义“用户”。如果用户是在您的网站上注册了他或她自己的人,使用电子邮件地址,密码和昵称,以及谁可以登录,那么请将所有人都放在users
表中。
用户在网站上可以做或不能做的事情对用户来说没有区别。这是他们的权限不同。在单独的表中将权限映射到用户。不要为每种类型的用户创建表。
否则,当您将来添加新类型的权限时,您不必为该类型的用户添加新表(并更改处理用户的所有(sql)代码:登录,重置密码等)。您只需添加一种新类型的权限,并将其映射到各自的用户。
答案 2 :(得分:2)
它将为您节省大量工作,只需拥有一个表,并在表中有一个列,用于定义它们的类型。
答案 3 :(得分:0)
不,为每个人制作一张桌子。它将更容易管理,它将是可扩展的