当前位置:  开发笔记 > 后端 > 正文

在数据库中建模继承

如何解决《在数据库中建模继承》经验,为你挑选了1个好方法。

对于数据库分配,我必须为学校建模系统.部分要求是为员工,学生和家长建模信息.

在UML类图中,我将其建模为这三个类是人类型的子类型.这是因为他们都需要有关地址数据等信息.

我的问题是:我如何在数据库(mysql)中对此进行建模?

到目前为止的想法如下:

    创建一个单片人员表,其中包含每种类型的所有信息,并且根据存储的类型,将包含许多空值.(我怀疑除非我非常有说服力地辩论这个案子,否则这对讲师来说会很顺利).

    一个带有三个外键的人员表,它引用了这些子类型但其中两个是空的 - 实际上我甚至不确定这是否有意义或者是否可能?

    根据关于django的wikipage,可以在子类型上实现主键如下:

    "id" integer NOT NULL PRIMARY KEY REFERENCES "supertype" ("id")

    我还没有想到的其他东西......

对于那些之前在数据库中建模继承的人; 你是怎么做到的?你推荐什么方法?为什么?

非常欢迎链接到文章/博客文章或以前的问题.

谢谢你的时间!

UPDATE

好的,谢谢大家的答案.我已经有一个单独的地址表,所以这不是问题.

干杯,

亚当



1> Binary Worri..:

4桌工作人员,学生,家长和人员为通用的东西.工作人员,学生和家长都有forign键,每个键都会返回Person(而不是相反).

人员有一个字段,用于标识此人的子类(即员工,学生或家长).

编辑:

正如HLGM所指出的,地址应该存在于一个单独的表中,因为任何人都可能有多个地址.(但是 - 我不同意自己 - 你可能希望故意将地址限制为每人一个,限制邮件列表的选择等).

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有