2016-07-15 4 views
2

私はいくつかのWebアプリケーション用にdbを計画しています。そして、私はいくつかのテーブルの共通テーブルについての混乱を見つける。例えば、
テーブルuserstravelsおよびgroupsからの各行はいくつかの画像を必要とする。だから、私はこれらのテーブルのそれぞれに外部キーを持つテーブルimagesを作成し、いくつかの新しいテーブルが必要な場合は、imageからこのテーブルに新しいリンクを作成します。
users_imagesgroups_imagesなどのユニークなテーブルを各テーブルごとに作成する方が良いでしょうか?
申し訳ありませんが、私の質問が広すぎるように見える場合、私は井戸の男だけで、うまくdbスキームを計画するベストプラクティスを探しています。いくつかのテーブルに共通の関連テーブルを作成するのは良い方法ですか?

答えて

2

あなたは

既存のテーブル

  • ユーザー

    のようなもの(ID、名前、...)
  • 旅行(ID、説明、...)
  • グループ(IDを使用する必要があります、名前、...)

今、あなたは、テーブルのIMAGE(ID、Image_Blob、...)

を作成

  • UserImageのような210の

    とマッピングテーブル(ユーザーID、IMAGEID)

  • TravelImage(TravelID、IMAGEID)
  • GroupImage(グループID、IMAGEID)外部キー制約を持つ

すべての列とインデックス。

利点:

  • あなたが特定のメタ情報を追加することができますいくつかのエンティティ
  • に一つの画像をマッピングすることができます(このとき、コメントがリンクされ、...)たぶん

ソーステーブルの名前を置く追加のLinkingTo列を持つ共通のマッピングテーブルを使用するようにアドバイスします。しかし、そうすることで、外部キーの制約を抱かせなければならないでしょう。

それはほとんどの一般的なルールです:良いデータベースが

:-) 多くのテーブルを持っています
関連する問題