对于有经验的数据库开发人员,这可能是一个简单的问题,但我很苦恼......我无法将某个ER图翻译为数据库模型, 。具有子类型交叉链接的超类型/子类型db设计
我有类似的设置滑动此呈现的17: http://www.cbe.wwu.edu/misclasses/mis421s04/presentations/supersubtype.ppt
幻灯片17示出了与具有员工类型属性的雇员超型ER图和作为亚型雇员类型本身(每小时,工薪和顾问),这与我的设计情况非常相似。
就我而言,假设薪水员工是唯一可以成为其他员工老板的员工,并且我想以某种方式表明某个薪水员工是否是小时和/或薪水员工和/或顾问的老板,没有或两者),这怎么可能在数据库模型中设计,同时考虑到这些是一对多的关系?
我可以把他们之间的PK-FK关系,这将导致有两个FKeys和(就像FK_Employee和FK_SalariedEmployee顾问)和SalariedEmployee引用本身的所有表中,但我一直在想这也许不是最聪明的解决方案。 ...虽然我不确定为什么(诚信问题?)。
这是一个可接受的解决方案还是有更好的解决方案?
在此先感谢您的帮助!
非常感谢您的回答。我想我知道了,但要检查一下:发电机组(发电机组)的PK id实际上与编程器的某个规格表的PK id是一样的。因此,每个规格表(子类型)将始终具有与单个gen行相关的不同PK ID。这意味着'FK的老板'也可以始终与发型表(超类型)相关联。我理解正确吗? – TomL 2011-12-17 13:44:14
呃...我的意思是当然有另外一种方式......规范表(例如Salaried Employee)的PK id实际上将以编程方式与其中一个gen table(Employee)的PK id相同, 对? – TomL 2011-12-17 14:01:46
是的,还有更多。 “Boss of column”的FK值与Salaried Employees表中一行的PK值相同。反过来,这个PK将与Gene一行中的PK表的值相同。所以你可以根据这个共同的价值加入所有三张表。 – 2011-12-17 16:00:36