E-R图转关系模式, 强制参与和选择参与
首先每个实体对应一个关系
对于实体间存在的联系,得到映射基数后,还要知道参与联系的实体是强制参与还是选择参与,比如人拥有车的关系,每辆车都有主人,不一定每个人都有车,这里人就是选择参与,车是强制参与
假设有实体A和B存在联系
1.对于1:1的联系
如果两边都是强制参与,可以将A的主键放到B的关系中或者将B的主键放到A的关系中,不必为这个联系新建一个关系
如果一边是强制参与,一边是可选参与,则将可选参与一边的主键放到强制参与一边的关系中,不必为这个联系新建一个关系
如果两边都是可选参与,则要为这个联系新建一个关系,其属性为两边的主键。
2.对于1:多的联系
如果多的一边是强制参与,则将1的一边的主键放到多的一方的关系中,不必为这个联系新建一个关系
否则,新建一个关系,其属性为两边的主键
3.对于多对多的关系
新建一个关系,其属性为两边的主键
上面为联系建立的关系不会出现NULL的情况,如果允许NULL,还可以这样
a.对于1:1的联系
如果两边都是可选参与,也可以将任意一边的主键放到另一边作为一个属性,但该属性有可能为NULL
b.对于1:多的联系
如果两边都是选择参与,也可以将1的一边的主键放到多的一方的关系中作为一个属性,但该属性有可能为NULL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通