哪个唯一ID用于博客和评论?

时间:2011-09-24 16:57:02

标签: php mysql relational-database unique-key

这是一个由另一个问题的后果引起的问题: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
}

以后不太可能再咬一次?

2 个答案:

答案 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)

只有你可以完全回答,但我的直觉说博客条目应该由作者标记。在概念上使用帐户的唯一原因是非作者可以创建(作者)博客文章。到目前为止,通过提供的信息,情况并非如此。

请注意,我还认为所有作者都应该是用户:每个人都是用户,但只有部分用户也有作者身份。