0

これは、ここでの別の質問の結果から生じた質問です: 2 つの別個のユーザー テーブルを使用する方が良いですか、それとも 1 つを使用する方が良いですか?

Author と Reader の 2 種類のユーザーがいて、それぞれが次のようにメインの Accounts テーブルにキー付けされたリレーショナル テーブルに格納されていると仮定します。

TABLE Accounts {
    id
    email
    password
    salt
    created
    modified
}

TABLE reader {
    id
    user_id
    ...
}

TABLE author {
    id
    user_id
    ...
}

著者がブログを投稿するとき、ブログに Authors テーブルの一意の ID または Accounts テーブルの一意の ID をタグ付けする必要がありますか? 読者のコメントについても同様です。コメントに読者テーブルの一意の ID またはアカウント テーブルの一意の ID をタグ付けする必要がありますか?

したがって、基本的に次のいずれかです。

TABLE Blogs {
    id
    author_id
}

また

TABLE Blogs {
    id
    account_id
}

後で噛む可能性が低いのはどれですか?

4

2 に答える 2

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 に一致するブログを探すことで、彼らのブログを見つけることができます。アカウント タイプに依存するフィールドがある場合は、それらをすべて「プロファイル」テーブルに配置します。

于 2011-09-24T19:37:57.313 に答える
1

完全に答えることができるのはあなただけですが、私の直感では、ブログ エントリには作成者のタグを付ける必要があります。アカウントを概念的に使用する唯一の理由は、非作成者がブログ投稿を作成 (作成) できる場合です。これまでのところ、提供された情報では、これは当てはまらないようです。

また、すべての作成者はユーザーであるべきだと考えていることに注意してください。すべての人がユーザーですが、一部のユーザーのみが作成者ステータスを持っています。

于 2011-09-24T17:11:05.563 に答える