-
一对多关系向多对多关系
2019-04-03 14:01:26产品表-------分类表 一对一关系 product表 ID catetoryID category表 ID categoryName 产品表-------分类表 多对多关系 product表 ID category表 ID categoryName 新增productCategoryMapping ID ...产品表-------分类表 一对一关系
product表
ID catetoryID
category表
ID categoryName
产品表-------分类表 多对多关系
product表 ID
category表 ID categoryName
新增productCategoryMapping ID productID categoryID
-
mysql多对多关系的理解,由一对多看向多对多
2019-10-14 09:46:55先看一对多 学生表 create table student( id int primary key auto_increment, name varchar(20) ); 一个班级对应许多同学 //一个同学属于一个班级,外键写在同学里 create table student( id int primary ...先看一对多
学生表
create table student(
id int primary key auto_increment,
name varchar(20)
);一个班级对应许多同学
//一个同学属于一个班级,外键写在同学里
create table student(
id int primary key auto_increment;
sn int unique,
name varchar(20) default'不知道'
classes_id int,//所属班级
foreign key(classes_id) references classes(id)
);
//classes_id int,
/foreign key(classes_id) references classes(id)这就把两张表关联起来了,学生的class_id属性对应到班级表的id里学生表和车票
create table student(
id int primary key auto_increment,
name varchar(20)
);
create table ticket(
id int primary key auto_increment,
name varchar(20)
);create table student_ticket(
id int primary key auto_increment,
//一个学生有很多车票
student_id int,
foreign key(student_id) references student(id),
//一个车票有很多学生
ticket_id int,
foreign key(ticket_id) references ticket(id)
);
拆分为两个一对多一个车票有很多学生,拿着学生去找车票
student_id int,
ticket_id int,
foreign key(ticket_id) references ticket(id)
一个学生有很多张车票,拿着车票找学生
ticket_id int,
student_id int,
foreign key(student_id) references student(id),
二合一就变成student和ticket的中间表了就是多对多了
写一个老师和学生的关系:多对多
create table teacher(
id int primary key auto_increment,
name varchar(20)
);
create table student(
id int primary key auto_increment,
name varchar(20)
);create table student_teacher(
id int primary key auto_increment,
//一个学生有很多老师(老师对应哪些同学)
student_id int,
foreign key(student_id) references student(id),
//一个老师有很多学生 (学生对应哪些老师,学生去找老师)
teacher_id int,
foreign key(teacher_id) references teacher(id)
);学生和课程的中间表(二合一的一个过程)
学生表
create table student(
id int primary key auto_increment,
name varchar(20)
);课程表
create table course(
id int primary key auto_increment,
name varchar(20)
);
create table student_course(
id int primary key auto_increment,
//一个学生对应多个课程(把这个表当做课程表)(该课程属于哪些同学,拿课程去找同学)
student_id int,
foreign key(student_id) references student(id),
//一个课程对应多个学生(把这个表当做学生表)(该同学有哪些课程)
course_id int,
foreign key(course_id) references course(id) 8
);图书,学生具有一个借阅场景(借阅记录表作为中间表)
create table student(
id int primary key auto_increment,
name varchar(20)
);
create table book(
id int primary key auto_increment,
name varchar(20)
);
create table record(
id int primary key auto_increment,
拿着书student_id属性去同学表里找找有哪些同学借过书
student_id,
foreign key(student_id) references student(id),
拿着同学的student_id去找书的表里面查找该同学借过哪些书
book_id,
foreign key(student_id) references student(id),
);
-
对E-R模型向关系模式转换的认识
2015-09-30 22:29:11多值属性:单独建立一个关系表,关系名就是多值属性名,如果是实体集的多值属性,关系的属性就是实体集的码加上多值属性,如果是联系集的多值属性,关系的属性就是各个实体集的码加上多值属性,关系的码要具体情况...一:基本E-R图的转换
1 属性处理
派生属性:直接忽略。
复合属性:展平技术。
多值属性:单独建立一个关系表,关系名就是多值属性名,如果是实体集的多值属性,关系的属性就是实体集的码加上多值属性,如果是联系集的多值属性,关系的属性就是各个实体集的码加上多值属性,关系的码要具体情况具体分析。
2 基本E-R图转换为关系模式
强实体集:一个关系,关系名就是强实体集名,关系属性就是强实体集的属性,关系的码就是强实体集的码。
弱实体集:一个关系,关系名就是弱实体集名,关系属性就是标识实体集的码加上弱实体集的属性,关系的码就是标识实体集的码加上标识符。
联系集:一个关系,关系名就是联系集名,关系属性就是联系涉及的实体集的主码加上联系集本身的属性,关系的码:如果是一对一,那么各个实体集的码都可以是关系的码,如果是一对多或者多对一,那么多端实体集的码是关系的码,如果是多对多,那么各个实体集的码组成关系的码。
关系的合并:必须名字和含义都相同才行。
二:扩展E-R图的转换
1 用关系模式表示特殊化和一般化
高层实体集和低层实体集都用关系表示:
高层实体集用一个关系表示,关系名就是高层实体集名,关系属性就是高层实体集的属性,关系的码就是高层实体集的码。
低层实体集用一个关系表示,关系名就是低层实体集名,关系属性就是高层实体集的码加上低层实体集的属性,关系的码就是高层实体集的码。
只把低层实体集用关系表示:
适用于一般化是全部的和不相交的。
低层实体集用关系表示,关系名就是低层实体集名,关系属性是高层实体集的属性加上低层实体集的属性,关系的码就是高层实体集的码。
高层实体集和低层实体集之间的ISA联系不用表示。
2 用关系模式表示聚集
聚集中的实体集和联系集用关系表示,和普通的实体集和联系集的表示一样。聚集和实体的联系用关系表示,关系名是联系集名,关系属性是聚集的码加上实体的码加上联系的属性,关系的码分3种情况:一对一那么聚集的码或实体的码都可以是关系的码,一对多那么多端的码是关系的码,多对多那么聚集的码和实体的码共同是关系的码。
以上就是我对于从E-R图向关系模式转换的认识。
-
ER图向关系模式转换
2019-08-16 15:28:20ER图向关系模式转换涉及到两方面: ①实体的转换; ②实体间联系的转换。 实体的转换:在从ER图转换为关系模式时,一个实体就转换一个关系模式,实体的属性就是关系模式的属性,实体的键就是关系的主键。 实体间...ER图向关系模式转换涉及到两方面:
①实体的转换;
②实体间联系的转换。- 实体的转换:在从ER图转换为关系模式时,一个实体就转换一个关系模式,实体的属性就是关系模式的属性,实体的键就是关系的主键。
- 实体间联系的转换:实体间存在三种联系,即1:1(一对一),1:n(一对多),m:n(多对多)。
在从ER向关系模式转换规则如下:
①1:1(一对一)联系方法一:联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的键构成;主键由两个实体中的任意一个键成。
方法二:联系与一端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内,主键不变。②1:n(一对多)联系
方法一:联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的键构成;主键由n端实体的键组成。
方法二:与n端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内,主键不变。③m:n(多对多)联系
多对多联系转换成新的独立的模式,模式的属性由联系本身的属性及两个实体的键构成,主键由两端实体的键组合成。
练习题:
在一个ER图中,有四个实体集,两个二元一对多联系,两个二元多对多联系,一个三元多对多联系,两个一元多对多联系,则将该ER图转化为关系模型后,得到的关系模式个数是____答案:
由题目可知,该题中有4个实体,两个二元一对多联系,两个二元多对多联系,一个三元多对多联系,两个一元多对多联系。4个实体和5个m:n(多对多)联系可以转换为单独的模式,1:n(一对多)联系需要合并到实体中去。因此可以最终得到9个模式。故答案为9。 -
HIbernate的多对多关系-----单向和多向
2017-07-18 15:49:57当数据库表结构是多对多关系时,对应的实体类和相应的配置文件也需要是多对多的,多对多关系分为单向和多向, 一、单向 新建java项目,结构为: 需要的jar包及如何从hibernate官网获取jar包,请参见... -
如何向多对多关系的中间表添加数据
2015-12-04 03:35:32 -
ER模型向关系模型的转换规则
2020-03-11 12:16:44ER模型向关系模型的转换规则 ER模型向关系模型的转换,实际上就是把ER图转换成关系模式的集合。 规则1(实体类型的转换) 将每个实体类型转换成一个关系模式/表,实体的属性即为关系模式的属性,实体标识符即为... -
hibernate笔记--单(双)向的多对多映射关系
2016-03-04 10:36:00在讲单向的多对多的映射关系的案例时,我们假设我们有两张表,一张角色表Role,一张权限表Function,我们知道一个角色或者说一个用户,可能有多个操作权限,而一种操作权限同时被多个用户所拥有,假如我们我们的需求是能... -
向依赖关系宣战
2015-04-13 14:31:29一篇依赖倒置,控制反转,依赖注入好文 摘自(http://www.contextfree.net) 向依赖关系宣战 依赖倒置、控制反转和依赖注入辨析 在《道法自然——面向对象实践指南》一书中,我们采用了一个对 -
SSH框架双向多对多关系中如何向中间表插入数据
2012-10-02 11:00:381.配置好多对多关系的XX.hbm.xml映射文件 POJO类: 角色类: Integer roleId; String roleName; String roleDesc; Set userinfos=new HashSet(0); getter/setter方法 角色映射配置 -
E-R模型向关系模型转换
2020-01-14 21:15:29E-R模型向关系模型转换 1.为E-R图中的每个实体建立一张表。 2.为每张表定义一个主键(如果需要,可以向表添加一个没有实际意义的字段作为该表的主键) 3.增加外键表示一对多关系。 4.建立新表表示多对多关系... -
Hibernate的学习——14.hibernate关系映射_基于主键的多向一对一
2019-04-04 09:20:2514.hibernate关系映射_基于主键的多向一对一 首先,表结构和基于主键的单向一对一样,不变。然后它的Person,Card类的类结构也不变。 只是配置文件需要改变一下。 Card.hbm.xml配置改变一下,Person类的配置和单向... -
java一对一关系_Java初学者疑难杂症之:一对一和一对多的关系
2021-02-28 07:14:29【威哥说】作为一个程序员,我们每天都在“搞”对象,额,“用”对象,感觉那个词都不太好,还是继续向下说,对象之间的关系有的是一对一的,也有一对多的(现实中有才好),他们之间到底是如何的关系,你是不是搞明白... -
echarts graph生成关系网络关系力向图
2019-09-12 16:53:40开始进行力向图的数据准备,这一步需要对js中的数组和对象有所了解,如果数据格式不对图表是显示不出来的。echarts使用的数据是json格式,最外层用方括号[]表示,而里面的对象用大括号{}表示,对象内的映射用冒号:... -
E-R模型向关系模型的转换规则
2019-05-14 16:05:05实体-联系模型(简称E-R模型)是由P.P.Chen于1976年首先提出的。它提供不受任何DBMS约束...E-R模型向关系模型的转换规则: (1)实体类型的转换 将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体... -
Entity Framework一对多关系或一对一关系删除子对象的方法
2012-02-23 10:01:00如果外键不支持 null 值,则必须定义新的关系,必须向外键属性分配另一个非 null 值,或必须删除无关的对象。 解决方法: 例如OrderItem和Product是一对多的关系 OrderItem.ProductId是关系的外键 你要先删除对... -
多对多关系映射
2017-12-20 20:31:50关系表单向多对多 n-n 的关联必须使用连接表 与 1-n 映射类似,必须为 set 集合元素添加 key 子元素,指定 CATEGORIES_ITEMS 表中参照 CATEGORIES 表的外键为 CATEGORIY_ID. 与 1-n 关联映射不同的是,建立 n-n ... -
java 一对一的关系_Java初学者疑难杂症之:一对一和一对多的关系
2021-03-04 09:36:44【威哥说】作为一个程序员,我们每天都在“搞”对象,额,“用”对象,感觉那个词都不太好,还是继续向下说,对象之间的关系有的是一对一的,也有一对多的(现实中有才好),他们之间到底是如何的关系,你是不是搞明白... -
通过有向边关系得到每个图包含的节点信息
2020-10-24 15:20:59如现有如下有向关系对: (A,B),(B,C),(D,C),(E,F),(G,F),(H,E),(I-G),(J-B) 其中,(A,B)表示A属于B,即为有向关系对。 通过关系合并,则最终可以得到的两个图(类)。图1的节点有(A,B,C,D,J)、图2的节点有(E,F... -
hibernate之单向一对多关系
2017-05-25 14:03:05hibernate中单向一对多关系: 做留言板项目的发现自己hibernate种对表之间的关系有些陌生,之前一段时间,粗略的复习和se的东西以及数据结构的知识,想尽量让自己知道的东西更多一点,希望能在暑假可以找到一份... -
淮南煤田北西向断裂与岩溶陷落柱关系研究
2020-05-10 00:57:34通过对淮南煤田近东西向的复向斜构造盆地调研分析,掌握了发育的3组主构造线分布特征,并结合淮南井田实见岩溶陷落柱(带)的分布特点,对淮南煤田北西向断裂与岩溶陷落柱(带)的发育方向的关系进行了研究。结果表明:该北... -
dgraph解决社交关系中的正反向查找
2019-03-14 18:23:00dgraph解决社交关系中的正反向查找 本篇介绍的是, 社交关系中的关注者与被关注者在dgraph中如何实现查找. 对dgraph的基本操作不太清楚的可以看看我之前写的博客 dgraph实现基本操作 用go实现dgraph的基本操作 查看... -
ER图向关系模式的转化我懂了吗?
2020-08-13 12:09:52一对一联系:若联系双方均是部分参与,则定义一个新的关系,属性为联系双方的关键字属性。若一方全部参与,一方部分参与,则部分参与的一方在创建对应关系时需添加全部参与方的关键字属性。比如职工- 管理-部门 职工... -
-
hibernate中多对多关系的维护
2018-10-17 19:50:45hibernate中多对多关系的维护方式: 如何向表中加入user和good的关系: 删除某个对象所收藏的商品: 此篇博客所用到的数据库表及其关系: 关于users表: userid : 用户的id username : 用户的姓名 关于... -
一对蓝牙怎么会有两个设备_男生向女生表白被拒绝之后两个人的关系会怎么样?...
2021-01-08 21:27:34男生向女生表白被拒绝之后两个人的关系会怎么样? 男生追女生很少是一次表白就成功的,很多都是第一次被拒绝然后坚持慢慢打动对方才会在一起,因为有时候女方对男方也有好感但是因为尴尬或者是没做好心理准备而拒绝... -
从关系数据库向NoSQL迁移
2012-11-29 16:19:44尽管关系数据库用于存储数据已经有几十年的历史,而且对很多用例而言,这仍然代表着一类可行的方案,但NoSQL正在成为人们当前的选择,尤其是考虑可伸缩性和性能的时候。本文是对Couchbase的产品管理主管Dipti Bo...