2016-03-27 7 views
0

私はすべてのデータベースの中で全く新しいです。私がしたいのは、ユーザーに属するムービーのリストを保存することです。例えば、ユーザー「james」は、以下の映画「james bond、matrix、revenant、batman」が好きです。私はこの映画のリストをユーザー "james"に割り当てる方法を知らないので、テーブルとフィールドを作成する方法はわかりません。もしあなたが私にヒントを与えることができれば、私は評価するだろう。ムービーのリストをユーザーに割り当てます。

おかげ

+1

SQLの基本的な紹介の中の正規化を参照してください。 – Strawberry

答えて

1

ユーザテーブル

 id | user | other | email  

映画テーブル

id | name | year | etc 

user_movie(これはピボットテーブルと呼ばれます)

user_id | movie_id 

ピボットテーブルはかなり驚異的です。 例

users 
id | name | details 
3 | Hakim | xxxxxxx 
4 | Mohammed | xxxxxxx 

videos 
id | name | year 
2 | matrix | 2000 
3 | Batman R.| 2008 
4 | deadpool | 2016 
5 | Minions | 2015 

user_video (pivot table) 
user_id | video_id 
    3  |  3 
    3  |  5 
    4  |  2 
    4  |  3 
    4  |  4 

1つのユーザーはその逆、多くのビデオを見て、することができますこの方法。 :)

1

リンクこれは、3番目のテーブルのPK、ユーザーID、MOVIEIDすることができ、映画のID を持つユーザID、

1

あなたは映画とユーザーが多対多の関係にあると言っています。これをリレーショナルデータベースで表現するには、リンクテーブルが必要です。お使いのDBMSによっては、SQLは、テーブルのステートメントを作成するには、このようなものになります。

CREATE TABLE movie (
    NUMBER id PRIMARY KEY, 
    TEXT name 
); 

CREATE TABLE user (
    NUMBER id PRIMARY KEY, 
    TEXT name 
); 

CREATE TABLE user_movie(
    NUMBER movie_id REFERENCES movie(id), 
    NUMBER user_id REFERENCES user(id) 
); 
1

をSQLについての記事を読むには、あなたが今、あなたはフィールドで(CREATE TABLEが必要
MySQLこっち迅速かつ簡単なヘルプを見つけることができ、称賛... ) このような操作を行うには3つのテーブルが必要です(例:users、movies、user_movies )。
幸運!

関連する問題