SQL-数据库设计

161 阅读1分钟

数据库设计

image.png

表与表之间的关联关系

image.png

image.png

image.png

设计存储专辑的数据库案例

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),
		id int primary key auto_increment
);

create table Song( -- 歌曲
		name varchar(32),
		serial_number tinyint,
		id int primary key auto_increment
);

create table Review( -- 评论
		content VARCHAR(256),
		rating tinyint,
		review_time datetime,
		id int primary key auto_increment
);

create table User( -- 用户
		username VARCHAR(16) UNIQUE,
		image varchar(64),
		signature VARCHAR(64),
		nickname VARCHAR(16),
		id int primary key auto_increment
);
CREATE TABLE Middle( -- 中间表 连接用户和专辑
		User_id int,
		Music_id int,
		id int PRIMARY key auto_increment
);


ALTER table Song ADD CONSTRAINT fk_Music_Song FOREIGN KEY (id) REFERENCES Music(id); -- 一个专辑可以有多个歌曲 多个歌曲整合在一个专辑里 这是一对多的关系
ALTER TABLE Review ADD CONSTRAINT fk_Music_Review FOREIGN key (id) REFERENCES Music(id); -- 一个专辑可以有多条评论 而专辑只有一个 这是一对多的关系
ALTER TABLE Review ADD CONSTRAINT fk_User_Review FOREIGN KEY (id) REFERENCES User(id); -- 一个用户可以发表多个评论,而评论只属于一个用户 这是一对多的关系


-- 一下两条SQL是多对多的关系 一个用户可以下载多个专辑 一个专辑也可以被多个用户下载
ALTER TABLE Middle ADD CONSTRAINT fk_User_Middle FOREIGN key (User_id) REFERENCES User(id);
ALTER TABLE Middle ADD CONSTRAINT fk_Music_Middle FOREIGN key (Music_id) REFERENCES Music(id);

设计数据库模型

image.png