2016-11-22 13 views
0

私はデータベース全体を正規化されたデータベースに変換し始めました。今、明らかに私は、関係を作成するために、疑問を持っているMYSQLと1対1の関係

Colors 
-colorID (INT-PK) 
-colorName (varchar) 

Users 
-userID (INT-PK) 
-userName (varchar) 
_favColor (int) 

そして:

のは、私は2つのテーブルがあるとしましょう:しかし、私は関係について理解しない一つのことがありますis: Colors TableとUsers Tableの間、またはUsers TableとColors Tableの間に関係はありますか?

私が気づいたことは、関係を作成するときに、両方の表に関係が表示されず、どちらか一方にしか表示されず、混乱することです。

+1

私は、色テーブルにFKをfavColorにします。多くの人が同じ好みの色を持つことができます。それを外部キーにすることで、色が表に存在することを確認できます。私はユーザーへの色の間の関係を作成する場合COLOR_ID –

+0

usersテーブルだから、私は別のユーザーに同じ色を設定することができるようwouldntは? –

答えて

1

この例では、色からユーザーに向かう1:Mの関係をお勧めします。ユーザーテーブルは色のテーブルからの情報を必要とするため、

これ

は、あなたが1持っているだろう理由:別のユーザーが同じ好きな色を持っている可能性があるため、Mの関係があります。

+0

が含まれています – Coder

+0

Users._favColorは、colorsテーブルの外部キーにする必要があります。 任意のユーザーに任意の色を設定できます。 –