2011-02-27 10 views
2

これはおそらく本当に簡単な質問ですが、何らかの理由で私は100%自信を持って答えを考えることができません。ユーザー評価用のデータベースアーキテクチャ

私は自分自身といくつかの友達のためにオスカーについての小さなウェブサイトをまとめています。 I、候補作品ため(例えばベスト・フィルム)、式典自体のテーブルのテーブルをフィルム用のテーブル、テーブルを持っている(それが開催された例年、など)とすべてをリンクする表:ノミネート。このような(予想通り)

ノミネートテーブルルックス:

NominationID * 
FilmID 
AwardID 
NomineeID 
CeremonyID 

私は今一緒にユーザーテーブルを置くつもりですが、私は良いと思うことはできませんこれらのものにデータを保存する場所:

  • 所定のフィルムおよび/または...
  • の利用者の評価

    :ユーザーが指定したフィルム
  • 最初の二つの場合

受賞指名のユーザーの予測、私はこのようになりますUsersFilmsテーブル、考えていた見ているかどうか

  • 第三のため
    UsersFilmsID * 
    FilmID 
    UserID 
    UserRating 
    UserSeenIt (boolean) 
    

    予測表:

    PredictionsID * 
    NominationID 
    UserID 
    

    Canyの誰もが、これはそれを行うには良い方法であるかどうかについてアドバイスを与えますか?ありがとう!

  • +3

    これは私にとって堅実なスキーマのように聞こえます。よくやった。 –

    +0

    ありがとう! :)うまくいけば、あなたは正しい。 –

    答えて

    1

    ノミネートは人物でも映画でもよいという事実をどのように管理する予定ですか?

    勝者を保存する予定ですか?

    私はあなたが各テーブルのために持っていることを計画していた列を投稿するべきだと思います。私が考えている潜在的な問題はたくさんありますが、すでに解決しているかもしれません)

    UsersFilmでは、ユーザーが映画を見る前に評価することはできないと思うので、ブール値は必須です。私の見解では常に真です。

    結論として、私はデータベースのモデル化の問題は単純だとは思っていません。常に考え方を変える方法はたくさんあります。

    +0

    それは良い点ですが、「ベスト・フィルム」のようなものでも、映画自体ではなく、人々(プロデューサー)に授与されます。はい、私は勝者の救済を計画していましたので、それは解決すべきもう一つの問題です: - それは視聴/評価に関しても同じですが、映画を評価せずに見たようにマークしたい人もいます。 –