MySql(2)ER模型

Mysql专栏入口

一、 设计规则

  • 数据在表中,表在数据库中。
  • 一个数据库可以有多个表,每个表都有一个唯一标识符(名字)。
  • 表具有特性,类似于类的设计。

表、记录、字段

  • E-R(entity-relationship,实体-联系)模型有三个主要概念是:实体集(表)、属性(字段)、联系集。
ORM思想(Object Relational Mapping)
数据库中的表对应(表)-> Python中的一个类
表中的一条数据(记录) -> 类中的一个对象
表中的一个列(字段) -> 类中的一个字段

表的关联关系

  • 现实世界中的各种实体以及实体之间的各种联系均用模型表示
  • 关系一共有四种:一对一,一对多,多对多,自我引用
# 一对一
开发中较少,因为一对一可以创建成一张表
例如:设计学生表:学号、姓名、手机号、班级、身份证、家庭住址、籍贯......
	拆分成两个表:
		基础信息表(常用):学号、姓名、手机号、班级。
		档案信息表(不常用):学号、身份证、家庭住址、籍贯......
两种表的建表原则:
	外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一。
	外键是主键:主表的主键和从表的主键,形成主外键关系。

# 一对多
常见实例场景:客户表和订单表,分类表和商品表,部门表和员工表。
一对多建表原则:在从表创建一个字段,字段作为外键指向主表的主键。
	例如:    学生表                           班级表
   		|sid|name |cid|                  |cid|  class  |
   		|---|-----|---|					 |---|---------|
   		|1  |李一一|1  |                  |1  |一年级一班|
   		|2  |王二二|1  |                  |2  |一年级二班|
   		|3  |李一一|2  |
   		|4  |王二二|2  |
   学生表中的cid指向了班级表种的主键cid 一个班级可以有多个学生,标准的一对多。
# 多对多
  要想表示多对多,必须创建第三个表,该表通常成为连接表,它将多对多的关系划分为
两个一对多关系。
	例如:学生-课程
		一个学生可以选择多门课,一门课也可以被多个学生选择。这时就需要一个连接表来
	表示其中关系。
   	| sid | cid |
   	|-----|-----|
   	|  1  | 101 |
   	|  2  | 102 |
   	|  1  | 102 |
   	|  2  | 101 |
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值