【发布时间】:2013-02-13 01:49:47
【问题描述】:
对于数据库作业,我必须为学校建模一个系统。部分要求是为员工、学生和家长建模信息。
在 UML 类图中,我将其建模为这三个类是人员类型的子类型。这是因为它们都需要地址数据等信息。
我的问题是:如何在数据库中建模(mysql)?
目前的想法如下:
- 创建一个包含每种类型的所有信息的单一人员表,并且根据存储的类型将有很多空值。 (除非我非常令人信服地论证了这个案例,否则我怀疑这是否会被讲师接受)。
- 一个包含三个外键的人员表,这些外键引用了子类型,但其中两个为空 - 事实上,我什至不确定这是否有意义或可能?
-
根据这个wikipage about django,可以在子类型上实现主键,如下所示:
"id" integer NOT NULL PRIMARY KEY REFERENCES "supertype" ("id") - 其他一些我没有想到的...
所以对于那些以前在数据库中建模继承的人来说;你是怎么做到的?您推荐什么方法,为什么?
非常欢迎链接到文章/博客文章或以前的问题。
感谢您的宝贵时间!
更新
好的,谢谢大家的回答。我已经有一个单独的地址表,所以这不是问题。
干杯,
亚当
【问题讨论】:
-
如果这是家庭作业,请添加家庭作业标签
-
好的。如果我不要求人们为我做这一切,我认为可以提出与“家庭作业”相关的问题?
-
是的,问起来完全没问题;-) 这只是一种很好的形式,可以确保人们知道这是作业,并且标记是推荐的方法。是的,不要指望人们会做这一切。
标签: database inheritance