跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

一对一,一对多,多对多三种关系简单理解

今天单位有个小朋友问起,一对一,一对多,多对多 这三种关系该怎么理解。

一、一对一的关系 简单的说这个东西是和你绑定的,你和它都是唯一的对应关系。

举例说明: 你和你的身份证号,你和你的学生卡,你和银行卡 等等,这些关系都是一对一的关系。

数据表示: 表A (人员姓名表) ID人员姓名 ry1张三ry2李四 表B (人员姓名表) ID身份账号外键 sfzh1422411********1234ry1sfzh2433411********2345ry2 二、一对多的关系 简单的说就是 一个 对应 多个 举例说明: 销售记录和销售明细,一条销售记录对多条的销售明细。

注意: 这里不要钻牛角尖,如果我一张单据就买一个东西呢,岂不是就是一对一的关系了?

不对的,我们设计东西时,会设计成一对一吗?

如果是,那出现一对多的情况时,该怎么处理呢?

是否就出现了设计失误呢。

设计是无法完美的,只能是尽善尽美,尽可能的将前期想到的在使用中可能会出现的情况,纳入系统设计中。

数据表示: 表C (销售单据表) 销售单号(主键)销售人员 dh1张三dh2李四 表D (销售明细表) 明细ID产品名称外键 mx1上衣dh1mx2裤子dh1 一对多时,多 代表的这一张数据表,可设置外键,进行联表查询。

三、多对多的关系 可以理解为:一张表A中的一条记录可以对应另一张表B中的多条记录,另一张表B中的一条记录也可以对应一张表A中的多条记录 举例说明: 学生与老师的关系。

一名老师同时教授多个学生,一名学生同时被多名老师教导(数学老师、语文老师 等等),因此是多对多的关系。

数据表示: 表E (学生表) 学号(主键)学生名称 xh1张小小xh2李大大xh3王乎乎 表F (销售明细表) 老师ID老师名称 ls1原老师ls2韩老师 表G (关系表) 关系ID(主键)学生ID老师ID 1xh1ls22xh2ls23xh3ls24xh1ls15xh2ls16xh3ls1 当出现对多对多的关系时,就要考虑好第三者关系表,用以存放多对多关系的外键 有很多类似的场景,都需要。

如用户与角色的关系,角色与权限的关系等等,

相关文章