表之间的关系

A表 和 B表

A表中一条记录 对应 B表中一条记录

B表中一条记录 对应 A表中一条记录

A表中一条记录 对应 B表中另一条记录

B表中一条记录 对应 A表中只有唯一条记录

A表中一条记录 与 B表中对应关系 有2条

B表中一条记录 与 A表中对应关系 只有1条

A表与B表是1对2关系

B表与A表是1对1或者是2对一关系

对于A表的中那一条记录 它有两个对应关系 不确定是对应对象数目

对于B表中 以A表的那条记录为主题对象 有两条记录和它对应

在A表与B表中 关于A表中的某一实体 有N条对应关系 在N条对应关系中 A只有一个实体 B有N个实体

所以在A表和B表中,关于A表中的某实体的所有对应关系中,A为一个实体,B为不确定的多个实体,所以关系为一对多
反过来是多对一

再看B表中的某一实体信息

在A表与B表中,关于B表中的某一实体,只有一条对应关系,关系对应A表中只有一个实体,对应B表中也只有一个实体

所以可以说是一对一

但是没有完

A表与B表中任一实体

A表中的某一实体或者B表中的某一实体

如果在两表之间有一个对应关系,那么关系对应的所有实体如果没有更多的对应关系则为一对一,如果有更多的对应关系
如果所有的对应关系对应某一表只有一个实体对应另一个表有多个实体,则为一对多或者多对一关系
如果所有对应关系对应两个表都有多个实体,则为多对多关系


那么表之间的关系在数据库中如何表示

约束>主外键约束>主表和从表

两张表,一张是主表,另一表是从表。主表受到两表之间的约束限制,但是主表中没有从表的相关的记录;
从表也受到两表之间的约束,并且从表中有一个外键字段,对应主表的主键字段。约束表现为,主表中的实体
如果有从表与之关联,则主表不能删除,主键不能修改;在从表中表现为,在增加一条新的实体时,外键字段如果不为空
则必段对应为主表中的主键字段,修改时如不为空,则也必段是主表中的主键字段,删除可以。
查询时,在主表中查询不到对应从表的信息,在映射成对象实体时,查询到的是存储有从表中与之对应的所有实体的集合
在从表中每一个记录均可查询到与之对应主表主键信息,在映射成对象时,查询到的是对应的主表实体的一个对象。

可以这样理解,无论是查主表实体对从表实体信息,还是查从表实体对应的主表信息,都只能在从表中查询。
如果查询对应的主表记录,则查询这条记录对应的外键字段信息,再根据外键查询对应的主表记录
如果查询对应的从表记录,则查询这条记录的主键信息在从表中对应的所有外键的记录。
一个是根据记录查询到外键信息,一个是根据外键信息查询到实体记录

在映射成关联时,对关联实体的查询有LAZY和非LAZY之分,非lazy则是查询某一实体的时候,所关联的对象也查询出来
而lazy则在暂不查询。这个是很容易出错的地方,没有确认验证,大概主表的一方,也就是一的一方,关联的引用为空,因为
主表中并没有从表的信息,得到信息必段执行查询;而在从表的一方,也就是多的一方,关联的对象ID有值,其它属则为空
因为从表的外键就是主表主键的值,不需要查询主表就可以得到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值