哔哩哔哩黑马程序MYSQL数据库设计_案例练习分享,使用Navicat实现

# 创建专辑表
CREATE TABLE Music (
	title VARCHAR ( 32 ) ,
	alias VARCHAR ( 32 ),
	image VARCHAR ( 64 ),
	style VARCHAR ( 8 ),
	type VARCHAR ( 4 ),
	MEDIUM VARCHAR ( 4 ),
	publish_time date,
	publisher VARCHAR ( 16 ),
	number TINYINT,
	barcode BIGINT,
	summary VARCHAR ( 1024 ),
	artist VARCHAR ( 16 ),
  user_id  INT UNIQUE,
	id INT UNIQUE,
	PRIMARY KEY(id,user_id)
);

# 创建歌曲表
CREATE TABLE Song (NAME VARCHAR ( 32 ), 
serial_number TINYINT,
id int PRIMARY KEY
);

# 创建用户表
CREATE TABLE USER ( username VARCHAR ( 16 ) UNIQUE,
image VARCHAR ( 64 ),
signature VARCHAR ( 64 ),
nickname VARCHAR ( 16 ),
id INT PRIMARY KEY 
);


# 创建评论表
CREATE TABLE Review ( music_id INT UNIQUE,
user_id INT UNIQUE, 
content VARCHAR ( 256 ), 
rating TINYINT, 
review_time datetime,
PRIMARY KEY(music_id,user_id) 
);

我是先建表再添加外键约束的,建立多个外键先建表比较方便。

# 一对多:在多的一方建立外键关联一的一方主键
# 此处为歌曲建立与专辑的外键约束
ALTER TABLE Song add CONSTRAINT fk_song_music foreign key(id) REFERENCES Music(id); 

# 多对多:建立中间表,中间表至少包含两个以上外键分别关联双方主键,由此推断评论表为中间表

 ALTER TABLE Review ADD CONSTRAINT fk_review_music FOREIGN KEY ( music_id) REFERENCES Music ( id ); # 评论与专辑的外键约束

ALTER TABLE Review ADD CONSTRAINT fk_review_user FOREIGN KEY (user_id ) REFERENCES USER ( id );  # 评论与用户的外键约束

ALTER TABLE Music ADD CONSTRAINT fk_music_user FOREIGN KEY (user_id) REFERENCES USER ( id );
 # 专辑与用户的外键约束

建立外键约束,外键列名与主表列名类型必须相同哦!!修改表要先解除外键约束哦,不然可能不成功。

# 可能会需要用到的

drop table if EXISTS Review; 
#删除表,EXISTS后接表名

ALTER TABLE Review drop foreign key fk_review_user; 
# table后接要为其删除外键约束的表名,key后接要删除的外键名称

老师给的关系图是这样

我做完逆向表到模型后是这样

 

 大概就是这样,如果觉得不对的话欢迎指正呀~~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值