问题建模解决了泛化问题

时间:2010-07-12 15:54:10

标签: c# sql model uml entity-relationship

我有点担心如何将这个相当简单的场景建模为UML和ERM的最佳方式。设计时,必须在C#(实体框架4)和SQL Server 2008中实现。

案件是我有一个人,有一个邮政地址。现在这个地址可以是两种类型,邮政信箱或房屋标识符(房屋号码,街道等)。我相信这称为泛化,可以使用UML以下列方式建模:

http://i.imgur.com/Vzx4Z.png(对不起链接,但我没有足够的声誉来发布图片)

PostalAddressPostalBoxPostalAddressHouseIdentifier当然会有更多属性和与其他实体/表的关系。与Person类相同。其他类也会引用邮政地址,因此不仅仅是人。

我的问题是,如果这是建模这个问题的正确方法,以及我如何在SQL(模式方面)中实现它以及我在C#中的实体应该是什么样的?

提前谢谢

1 个答案:

答案 0 :(得分:1)

我认为你不应该将PostalAddress重用于不同的实体。更改给定实体的地址会更加困难。

对于关系数据库,有一些选项,如class table inheritance

或者single table inheritanceconcrete table inheritance。由你决定权衡取决于你。