需要帮助使用mysql创建一个简单的多对多关系

时间:2015-01-31 22:09:59

标签: mysql database

所以我习惯于使用教条,以至于我忘记了考试所需的标准mysql语法。

我想创建一个名为' youtube'的测试数据库。 使用app_users表和app_videos表。

现实生活"这将是oneToMany的关系,但我需要 研究创造了许多关系。

所以它 "许多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);

有效的东西:/

1 个答案:

答案 0 :(得分: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);