Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要帮助使用mysql创建简单的多对多关系吗_Mysql_Database - Fatal编程技术网

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

需要帮助使用mysql创建简单的多对多关系吗,mysql,database,Mysql,Database,所以我习惯了使用条令,以至于我忘记了标准的mysql语法,这是我考试时需要用到的 我想创建一个名为“youtube”的测试数据库 带有app\u用户表和app\u视频表 在“现实生活”中,这将是一段一夫一妻的关系,但我需要这样做 学习以建立多人关系 所以 “许多应用程序用户”->拥有“许多应用程序视频” 反过来说 所以首先我创建了一个数据库 CREATE DATABASE youtube; use youtube; 然后我创建了用户和视频表 CREATE TABLE app_users(

所以我习惯了使用条令,以至于我忘记了标准的mysql语法,这是我考试时需要用到的

我想创建一个名为“youtube”的测试数据库 带有
app\u用户
表和
app\u视频

在“现实生活”中,这将是一段一夫一妻的关系,但我需要这样做 学习以建立多人关系

所以 “许多应用程序用户”->拥有“许多应用程序视频” 反过来说

所以首先我创建了一个数据库

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)
);
现在我需要做的是以某种方式将这些列相互连接起来,但我的语法从来都不起作用

我知道我需要改变这个

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

要想找到有效的方法:/

您需要将app\u视频(video\u id)更改为app\u视频(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);