# 数据库
# 模式:A(a,b,c,d)
# S 强实体:有主关键字,反之弱 W
# 概念模型向逻辑模型转换
# 无属性
# 一、1 对多、S-S、无属性
# 一方关键字进入多方作为外部关键字
# 二、1 对 1、S-S、无属性
# 一对一关系需要自己把支配角色设置(在概念模型中修改)
# 支配方关键字进入对方做外部关键字
# 三、1,1 对 1,1 报错直接改为 1,1 对 0,1,直接把 1,1 关键字放到 0,1 中
# 四、0,1 对 0,1 多的进少的,受限更加少的管理受限更加多的 (1,1 受限少于 0,1)
# 五、多对多、S-S、无属性
# 左右两边强实体生成一个弱实体(为多),强实体主关键字进入做外部关键字(类似 1 对多)
# 六、1 对多、S-W、无属性
# 强进弱,作为主关键字和外部关键字
# 七、多对多、S-W、无属性
# 无支配关系
# 八、1,1 对 0,1,S-W、无属性
# 1,1 强,强支配弱
# 九、1,1 对 1,1,S-W、无属性
# 报错直接改为 1,1 对 0,1,直接把 1,1 关键字放到 0,1 中
# 十、0,1 对 0,1,S-W、无属性,无此种情况
# 有属性
# 一、1 对多,S-S,有属性
# 将 1 多属性反转,1 进入多作为外部关键字,或者,多进入 1 作为外部关键字
# 二、多对多和 0,1 对 0,1、S-W、有属性
# 无此种情况
# 三、多对多、S-S、有属性
# 左右两边强实体生成一个弱实体(为多),强实体主关键字进入做外部关键字(类似 1 对多),保留属性
# 四、1 对 1
# (一)1,1 对 1,1,S-S,有属性
# 报警,转第二种情况
# (二)0,1 对 1,1,S-S,有属性
# 有属性转化成无属性
# 1,1 进 0,1,1,1 为强,关系产生一个弱实体,右端变为 1,1,1,1 报错,可以改成 1,1,0,1,也可以进行合并(强弱),直接在强中把弱实体加入成为一列。
# (三)0,1 对 0,1,S-S,有属性
# 0,1 对 0,1 多的进少的,如果列数很多,直接产生弱实体
# 五、S-W,有属性
# 递归(自己☞自己)不存在 S-W
# 一、1 对多,S-S,无属性
# 关键字进入自己作为外部关键字,并且重新起名字
# 二、1 对 1,S-S,无属性
# 1,1 对 1,1 报警,1,1 对 0,1 报警,
# 0,1 对 0,1 设置支配角色后,关键字进入自己作为外部关键字,并且重新起名字
# 三、多对多,S-S,无属性
# 关系成为实体,向其中进两次(关键字进入自己作为外部关键字,并且重新起名字)成为 1 对多
# 四、多对多,S-S,有属性
# 规律同有属性,加上属性即可
# 五、1 对 1,S-S,有属性
# 1,1 对 1,1 报警
# 1,1 对 0,1 改为 0,1 对 0,1 或者将关系加入实体成为一列