这是一个由另一个问题的后果引起的问题:Is it better to have two separate user tables or one?
假设我有两种类型的用户,一个是作者和一个阅读器,每个用户都存储在关键表中,这些表键入主帐户表,如下所示:
TABLE Accounts {
id
email
password
salt
created
modified
}
TABLE reader {
id
user_id
...
}
TABLE author {
id
user_id
...
}
当作者发布博客时,我应该使用作者表中的唯一ID标记博客,还是使用Accounts表中的唯一ID?与读者评论相同 - 我应该使用Reader表唯一ID标记注释,还是使用Account表唯一ID?
所以,基本上都是:
TABLE Blogs {
id
author_id
}
OR
TABLE Blogs {
id
account_id
}
以后不太可能再咬一次?
答案 0 :(得分:3)
TABLE user {
id
email
password
salt
created
modified
}
TABLE profile {
user_id
age
favorite_movie
... other useless stuff...
}
TABLE user_role {
user_id
role_id
}
TABLE role {
id
name (author, admin, user, subscriber, etc...)
}
TABLE blog {
id
user_id
title
text
...etc...
}
user HASMANY role
user HASONE profile
user HASONE blog
因此,用户可以是管理员,也可以是作者。您可以通过查找找到他们的博客 用于此user_id的匹配博客。如果您有帐户类型相关字段 然后将它们全部放在“配置文件”表中。
答案 1 :(得分:1)
只有你可以完全回答,但我的直觉说博客条目应该由作者标记。在概念上使用帐户的唯一原因是非作者可以创建(作者)博客文章。到目前为止,通过提供的信息,情况并非如此。
请注意,我还认为所有作者都应该是用户:每个人都是用户,但只有部分用户也有作者身份。