MySQL学习(四)表的设计篇

目录

一、主外键约束

 二、范式

三、设计表的参考步骤


一、主外键约束

主键:唯一标识一行,整数类型的主键,常配搭自增长auto_increment来使用

外键:外键用于关联其他表的主键或唯一键

【虽然减少了冗余,但往往带来数据查询的难度】

On update :当更新时  On delete 当删除时

No action = Restrict 限制,不让改,当有外键约束存在时,无法对原字段内容进行更新或删除

Cascade 级联 要改一起改,当有外键约束存在时,原字段内容更新这里也更新,原字段内容删除这里用null代替

set null 将删除/修改的字段东东设为Null

 二、范式

超码:实体集中能够唯一标识一个实体的一个或多个属性的集合

候选码:最小超码称为候选码

主码:如果有多个候选码,任选一个作为主码

主属性:包含在候选码中的属性(所有候选码)

非主属性:其他不包含在候选码中的属性

1NF:每个属性对应的域值都是原子的,不可再分的

2NF: 所有非主属性都完全函数依赖于候选码

如:

studentNo,courseNo -> studentname

就不符合2NF,因为有部分函数依赖 studentNo->studentName

3NF:所有非主属性都直接函数依赖于候选码 

如:

studentNo->classNo,className,institute

classNo->className,institute

就不符合3NF,因为有传递函数依赖 studentNo->className,institute

三、设计表的参考步骤

表的设计:概念层——》逻辑层

表与表之间通过字段建立联系

1.分析应用的不同角色(如教务系统 老师+学生

2.找出应用的主场景(需求分析)(沟通很重要)

3.以不同角色为时间,写用户故事

4.从用户故事中找实体(判断实体是否需要转换为开发中的类,数据库中的表)

5.E-R图,描述实体,实体与实体之间的关系,转换为表

实体-实体

1:1 关系字段存任意一个表中

1:n 关系字段存多表

m : n 再建一个关系表, 转换为两个1对多关系

6.确定表中的字段,字段类型及约束(主键、外键等)

7.检查表的设计是否合理

  • 满足三范式(减少数据冗余)
  • 用户故事能否转换为SQL

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

笨笨在努力

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

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

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

打赏作者

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

抵扣说明:

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

余额充值