泛化关系的数据库表示

刘京城 2021-5-16 21:58

潘老师,我问一个分析类图转换成物理模型(数据库表)的问题。请问两个泛化关系的类,转换成数据库表后是不是各自对应单独的表,然后子类存父类的ID作为外键(如下图示)。除此之外还有别的吗?这里在数据库表这个级别,如何体现这二者是泛化关系?还是说在表这个级别不需要体现泛化关系?

UMLChina潘加宇

泛化,子类的对象必须是父类的对象,翻译成数据库,相当于:子类表的主键值必须是父类表的主键值。

人(ID,a,b)

男人(ID,c,d)

女人(ID,e,f)

然后,把人的ID拖到男人的ID,建立外键约束。

如果敲命令,大概是 add ....foreign key 男人.ID references 人ID....之类

女人类似办理。

整个类层级中,主键一样的就是同一个对象,不过每个对象的属性值都是分两个表放置。

EA的映射还可以,也可以自己用EA映射一下看看。


weixinpanjiayu2