2015-01-31 78 views
0

所以我習慣了使用原則,以至於我忘了標準的mysql語法,我需要一個考試。需要幫助使用mysql創建一個簡單的多對多關係

我想用app_users表和app_videos表創建一個名爲'youtube' 的測試數據庫。

在「現實生活中」這將是一對多關係,但我需要 研究來創建manyToMany關係。

所以它的 「許多app_users」 - >有「許多app_videos」 和其他方式。

所以首先我創建了一個數據庫;

CREATE DATABASE youtube; 
use youtube; 

然後我創建的用戶和視頻表

CREATE TABLE app_users(
    id INT AUTO_INCREMENT, 
    username VARCHAR(20), 
    password VARCHAR(40), 
    first_name VARCHAR(20), 
    last_name VARCHAR(20), 
    video_id INT, 
    PRIMARY KEY(id) 
); 

CREATE TABLE app_videos(
    id INT AUTO_INCREMENT, 
    video_path VARCHAR(20), 
    description VARCHAR(20), 
    likes INT(20), 
    dislikes INT(20), 
    user_id INT, 
    PRIMARY KEY(id) 
); 

然後我創建了一個關係表

CREATE TABLE vid_uid 
(
    id INT AUTO_INCREMENT, 
    video_id INT, 
    user_id INT, 
    PRIMARY KEY(id) 
); 

現在我需要做的是某種程度上的列連接到海誓山盟,但我語法從不運作

realationship

我知道我需要這個

ALTER TABLE app_users 
ADD FOREIGN KEY(video_id) 
REFERENCES app_videos(video_id); 

改變一些作品:/

回答

0

您需要更改app_videos(VIDEO_ID)到app_videos(ID)。另外你要改變的表vid_uid(APP_USERS沒有),因爲多數民衆贊成在一個爲外部鍵引用:

ALTER TABLE vid_uid 
ADD FOREIGN KEY(video_id) 
REFERENCES app_videos(id); 

您還需要做到:

ALTER TABLE vid_uid 
ADD FOREIGN KEY(user_id) 
REFERENCES app_users(id); 
+0

真好!謝謝老公 – user3531149 2015-02-02 09:14:43