如何在MySQL中实现泛化?
问题描述:
我对MySQL稍微陌生,想知道如何在SQL中实现泛化关联。如何在MySQL中实现泛化?
在我的UML图中,我有一个用户有两个子类(Employee和Manager),它们继承了User的所有属性。
我将如何去写这在SQL中?
谢谢!
答
有实行概括不同的方式。一种是创建一个具有所有通用属性的表格,以及他继承类和枚举的表格,告诉哪些专用属性是有效的。您也将拥有一个命名约定来标识来自专业化类的属性。例如。如果您的Employee
有一个属性degree
,您可以将其命名为或类似名称。
第二种方法是有一个User
表,并使用外键在Employee
等
一切取决于需求。没有银弹。
你目前的设计有什么问题? –
雇员和经理“细节”表不应该需要他们自己的单独的PK值,除非用户可以有多个经理(或雇员)“细节”;我也会认为所有的经理都是员工,但这可能只是一个命名方式。 – Uueerdo