该数据模型是否被认为是正确的

时间:2014-12-22 10:32:04

标签: sql-server entity-relationship data-modeling erd

我是数据建模的新手,并已开始学习更多教程。

我正在尝试为假设场景创建一个模型,并且正在努力验证我创建的内容,以确定它是否被认为是正确的数据模型。

基本上所有我想要做的就是以规范化的形式正确存储数据。在我的场景中,有3种类型的人,每个人共享一些属性,每个属性都有一组联系人详细信息。

以下数据模型是否可行?

enter image description here

1 个答案:

答案 0 :(得分:0)

人与被告,地方法官或工作人员之间的关系是类/子类模式的一种情况。在关系表中对此模式进行建模有两种常用方法。

一种方法称为“类表继承”。您可以通过访问此标签找到更多信息:或在网上搜索Martin Fowler对同一主题的处理。您的设计类似于此设计。

另一种称为“单表继承”的方法,您也可以用同样的方法进行研究。 。它更简单,在某些情况下可以正常工作。您处理的连接数较少,但您需要处理更多NULLS。

许多参加类表继承的人也应用了一种名为“共享主键”的技术。 。使用此技术,被告,裁判官和Staff_Member将各自使用person_id的副本作为主键。该主键还用作外键。共享主键强制执行本例中存在的IS-A关系的一对一性质。

如果您想进一步进行数据建模,您可能希望将ER建模作为关系模型中的独特数据模型进行学习。你在这里所做的主要是使用ER图表来绘制关系模型。这没有什么不妥,但它掩盖了一个全新的研究领域,通常称为概念数据建模。

如果您在概念级别生成ER模型,则不会尝试按表格实现它。在ER中有一个图表约定,其名称为“泛化/特化”,允许您描述类/子类的情况,同时对如何实现它保持沉默。

除了关系数据建模之外,概念数据模型还有一个有用的领域。使概念数据模型有用的原因恰恰在于它们提供了信息要求而没有说明如何满足这些要求。

一旦熟练创建概念数据模型,将其中一个转换为关系模型并不难。

这可能比你讨价还价更多,但是既然你正在学习建模,我想我会为你调查一些领域。