福州网站建设yfznkj,山东城市建设职业学院图书馆网站,公司宣传册设计样本免费,开发网站需要什么人员文章目录1.表中实体与实体对应的关系2.实际案例分析3.表的实际创建4.总结1.表中实体与实体对应的关系
一对多 如一个班级对应多名学生#xff0c;一个客户拥有多个订单等这种类型表的建表要遵循主外键关系原则#xff0c;即在从表创建一个字段#xff0c;此字段作为外键指向… 文章目录1.表中实体与实体对应的关系2.实际案例分析3.表的实际创建4.总结1.表中实体与实体对应的关系
一对多 如一个班级对应多名学生一个客户拥有多个订单等这种类型表的建表要遵循主外键关系原则即在从表创建一个字段此字段作为外键指向主表的主键 多对多 如一名老师对应多个学生同样的一名学生也对应多个老师这种类型的表建表要借助中间表拆分为俩个一对多的表使用中间表维持其之间的关系中间表至少要有俩个字段分别作为外键指向各自主表的主键 一对一 如一个账号只有一个账户名一个密码在实际开发中此种关系只需要一张表即可实现这种类型的表建表只要保证主键唯一即可如果涉及多表的情况要保证主表的外键与从表的外键唯一形成主外键关系外键又是主键
2.实际案例分析 设计一个商品的实现案例其中包含商品的分类信息商品的具体信息用户信息表用户收藏商品详情的表共4张表需要怎么实现 表之间关系的分析 首先商品表与分类表是一对多的关系一个分类对应多个商品商品表与用户表是多对多的关系多个商品可以被一个用户收藏多个用户也可以收藏一个商品商品表与收藏中间表是一对多的关系一个商品可以被收藏多次用户表与收藏中间表是一对多的关系一个用户可以收藏多次不同的商品
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.总结
表的设计涉及到很多复杂的业务场景只要保持好这几种表中的对应关系将复杂的逻辑拆分开来就一定可以实现它但是具体实现的结果性能的好坏这需要实际工作经验的支持与后期的学习尝试所以本小节只做介绍了解不做更多详细的解读。