泛化关系的数据库表示
刘京城 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映射一下看看。