数据库设计案例

数据库设计案例

描述:简单构建设计数据库

sql代码实现

/*
		数据库设计案例
*/

-- 音乐表
CREATE TABLE Music (
	title VARCHAR (32),
	-- 专辑名
	alias VARCHAR (32),
	-- 专辑别名
	image VARCHAR (64),
	-- 封面照片
	style VARCHAR (8),
	-- 流派(如经典,流行,民谣,电子等)
	type VARCHAR (4),
	-- 类型 (专辑,单曲等)
	MEDIUM VARCHAR (4),
	-- 介质 (CD ,黑胶,数字等)
	publish_time date,
	-- 发行时间
	publisher VARCHAR (16),
	-- 出版者
	number TINYINT,
	-- 唱片数
	barcode BIGINT,
	-- 条形码
	summary VARCHAR (1024),
	-- 简介
	artist VARCHAR (16),
	-- 艺术家
	id INT UNIQUE -- 编号(唯一)
);

INSERT INTO music
VALUES
	(
		'我只在乎你',
		'留声经典复刻版',
		'xxx',
		'流行',
		'专辑',
		'CD',
		'1987-01-02',
		'环球',
		1,
		2341613523,
		'邓丽君在1987年推出的唱片专辑,我只在乎你中有三首歌的歌,作者是陶粒砂,其实,陶粒砂极是邓丽君自己英文名的忠义,根据我手上的资料,邓丽君做的词并不多尿,他确曾向媒体表示最大的心愿使出一招,一脚踢的唱片。',
		'邓丽君',
		1
	);

SHOW TABLES;

SELECT
	*
FROM
	music;

-- 曲目表
create table song (
	name varchar (32),
	-- 歌曲名
	serial_number TINYINT,
	-- 歌曲序号
	id INT UNIQUE -- 编号(唯一)
);

SELECT
	*
FROM
	song;

-- 短评
CREATE TABLE review (
	id int,
	content VARCHAR (256),
	-- 评论内容
	rating TINYINT,
	-- 评分(1~5)
	review_time datetime -- 评论时间
);

drop table if exists review;

SELECT
	*
FROM
	review;

drop table if exists user;

-- 用户
CREATE TABLE USER (
	username VARCHAR (16),
	-- 用户名
	image VARCHAR (64),
	-- 用户头像图片地址
	signature VARCHAR (64),
	-- 个人签名,例如(我是灰太狼,我爱喜羊羊)
	nickname VARCHAR (16),
	-- 用户昵称
	id INT UNIQUE-- 用户编号(主键)
);

insert into user values(
'卡拉米',
'哆啦爱梦.jpg',
'我是卡拉米,我喜欢唱跳Rap,打篮球!',
'一念神魔',
1);

alter table song add constraint fk_song_music foreign key (id) references music(id); -- 曲目(多) --- 专辑(1)
alter table review add constraint fk_review_music foreign key (id) references music(id); -- 短评(多) --- 专辑(1)

-- 用户(多) --- 专辑(多)
alter table user_music_mid add constraint fk_music_id foreign key (music_id) references music(id);
alter table user_music_mid add constraint fk_user_id foreign key (user_id) references user(id);

alter table review add constraint fk_review_user foreign key (id) references user(id); -- 短评(多) --- 用户(1)

-- 删除外键
alter table user_music_mid drop FOREIGN key fk_music_id;
alter table user_music_mid drop FOREIGN key fk_user_id;


create table user_music_mid(  -- 多对多的中间表
id int,
user_id int,
music_id int
);

select * from user_music_mid;

SELECT
	*
FROM
	USER;

posted @ 2022-07-18 09:54  Haziy  阅读(823)  评论(0编辑  收藏  举报