3.1.1 表的相关设计
创始人
2024-05-27 13:38:36

文章目录

  • 1.表中实体与实体对应的关系
  • 2.实际案例分析
  • 3.表的实际创建
  • 4.总结


1.表中实体与实体对应的关系

  1. 一对多
    • 如一个班级对应多名学生,一个客户拥有多个订单等
    • 这种类型表的建表要遵循主外键关系原则,即在从表创建一个字段,此字段作为外键指向主表的主键
  2. 多对多
    • 如一名老师对应多个学生,同样的一名学生也对应多个老师
    • 这种类型的表建表要借助中间表,拆分为俩个一对多的表,使用中间表维持其之间的关系,中间表至少要有俩个字段,分别作为外键指向各自主表的主键
  3. 一对一
    • 如一个账号只有一个账户名,一个密码,在实际开发中,此种关系只需要一张表即可实现;
    • 这种类型的表建表只要保证主键唯一即可,如果涉及多表的情况,要保证主表的外键与从表的外键(唯一)形成主外键关系,外键又是主键;

2.实际案例分析

  1. 设计一个商品的实现案例,其中包含商品的分类信息,商品的具体信息,用户信息表,用户收藏商品详情的表共4张表,需要怎么实现??

  2. 表之间关系的分析

    • 首先,商品表与分类表是一对多的关系,一个分类对应多个商品;
    • 商品表与用户表是多对多的关系,多个商品可以被一个用户收藏,多个用户也可以收藏一个商品;
    • 商品表与收藏中间表是一对多的关系,一个商品可以被收藏多次
    • 用户表与收藏中间表是一对多的关系,一个用户可以收藏多次不同的商品

3.表的实际创建

		-- 创建分类表 category-- cid 分类主键,自动增长-- cname 分类名称非空,唯一CREATE TABLE category (cid INT PRIMARY KEY AUTO_INCREMENT,cname VARCHAR(100) NOT NULL UNIQUE);-- 创建商品表 goods-- gid 商品主键,自动增长-- gname 商品名称非空,唯一-- price 商品价格-- cid 外键,所属分类CREATE TABLE goods(gid INT PRIMARY KEY AUTO_INCREMENT,gname VARCHAR(100) NOT NULL UNIQUE,price DOUBLE,cid INT,FOREIGN KEY (cid) REFERENCES category(cid));-- 创建用户表 user-- uid 用户主键,自增长-- username 唯一,非空-- password 非空-- name 姓名-- sex 性别-- phone 手机号-- 因为password与name容易与sql命令冲突,这里使用``将其括住CREATE TABLE user (uid INT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(100) UNIQUE NOT NULL,`password` VARCHAR(30) NOT NULL,`name` VARCHAR(20),sex CHAR(1) DEFAULT NULL,phone VARCHAR(11));-- 创建收藏中间表 favorite-- gid 商品id,外键-- uid 用户id,外键-- gid 和 uid 设置为联合主键,同一个用户不能收藏同一个商品两次CREATE TABLE favorite (gid INT, -- 商品iduid INT, -- 用户idPRIMARY KEY(gid,uid), -- 联合主键FOREIGN KEY (gid) REFERENCES goods(gid),FOREIGN KEY(uid) REFERENCES user(uid));

4.总结

表的设计涉及到很多复杂的业务场景,只要保持好这几种表中的对应关系,将复杂的逻辑拆分开来,就一定可以实现它,但是具体实现的结果,性能的好坏,这需要实际工作经验的支持与后期的学习尝试,所以本小节只做介绍了解,不做更多详细的解读。

相关内容

热门资讯

周三AMD股票情况如何? 周三,尽管纳斯达克综合指数跌0.32%、标普500指数跌0.55%,超威半导体公司(AMD)股价仍上...
华为发布新一代组串式构网PCS... 来源:财评网6月3日,在2026华为智能光伏战略&新品发布会上,华为发布全新一代组串式构网PCS解决...
2026年世界杯比特币投注:6... 2026年6月11日至7月19日世界杯将在美国、加拿大和墨西哥举行,48支球队参赛,共104场比赛。...
博威合金:GB300液冷板材料... 来源:财评网6月3日,博威合金发布投资者关系活动记录表公告,公司供应GB300液冷板材料,产品验证已...
概伦电子收购锐成芯微及纳能微资... 金证(上海)资产评估有限公司近日就上海证券交易所关于概伦电子发行股份及支付现金购买资产并募集配套资金...