数据库设计

表关系

  • 一对一

    用户和用户详情

    一对一关系主要用于表的拆分,将一个实体中经常用到的字段放在一个表里面,不常用的字段放在另一张表里面。

    实现方式:在任意一方加入外键,关联另一方的主键,并且设置外键为唯一(unique)

  • 一对多(M)

    如:部门和员工

    实现方式:在多的一方建立外键,指向一的一方的主键

  • 多对多

​ 如:商品和订单

​ 一个商品对应多个订单,一个订单对于多个商品

​ 实现方式:建立第三张中间表,中间表至少包含两个外键,分别关联两方主键

--  订单表
CREATE TABLE tb_order(
id INT PRIMARY KEY auto_increment,
payment DOUBLE(10,2),
payment_type TINYINT,
STATUS TINYINT
);

-- 商品表
CREATE TABLE tb_goods(
id INT PRIMARY KEY auto_increment,
title VARCHAR(100),
price DOUBLE(10,2)
);

-- 订单商品中间表
CREATE TABLE tb_order_goods(
id INT primary KEY auto_increment,
order_id INT,
goods_id INT,
count INT
);
-- 建完表后,添加外键
alter table tb_order_goods add constraint fk_order_id foreign KEY(order_id) references tb_order(id);
alter table tb_order_goods add constraint fk_goods_id foreign key(goods_id) references tb_goods(id);
-- 删除外键
alter table 表名 drop constraint 外键约束名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n3Q8CWsI-1648394490956)(C:\Users\刘国庆\AppData\Roaming\Typora\typora-user-images\image-20220327160441292.png)]

数据库设计是什么

  • 有哪些表
  • 表里面有哪些字段
  • 表与表有什么联系

案例

CREATE table tb_music(
title VARCHAR(32),
alias VARCHAR(32),
image VARCHAR(64),
publish_time DATE,
id INT PRIMARY KEY
);

DROP TABLE IF EXISTS tb_song;
-- 曲目表名
CREATE TABLE tb_song(
S_name VARCHAR(32),
serial_number TINYINT, 
id INT PRIMARY KEY-- 编号唯一
)
alter table tb_song change id song_id INT;

drop TABLE tb_review;
-- 评论表名review
create TABLE tb_review(
content VARCHAR(256),-- 内容
rating TINYINT,-- 评分
id INT primary KEY,
CONSTRAINT fk_music_review foreign KEY(id) REFERENCES tb_music(id)
);
-- 用户表名user
CREATE TABLE tb_user(
username VARCHAR(16),-- 用户名唯一
id INT PRIMARY KEY
)
alter table tb_song add CONSTRAINT fk_music_id FOREIGN key (id) REFERENCES tb_music(id);

CREATE TABLE tb_music_review(
music_id int ,
review_id int ,
id INT primary KEY
);
alter table tb_music_review ADD CONSTRAINT fk_music_id1 foreign KEY(music_id) REFERENCES tb_music(id);

alter table tb_music_review ADD CONSTRAINT fk_review_id1 foreign KEY(review_id) REFERENCES tb_review(id);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SaVfnvtf-1648394490958)(C:\Users\刘国庆\AppData\Roaming\Typora\typora-user-images\image-20220327174538723.png)]

iew_id1 foreign KEY(review_id) REFERENCES tb_review(id);


[外链图片转存中...(img-SaVfnvtf-1648394490958)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶落q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值