我有点担心如何将这个相当简单的场景建模为UML和ERM的最佳方式。设计时,必须在C#(实体框架4)和SQL Server 2008中实现。
案件是我有一个人,有一个邮政地址。现在这个地址可以是两种类型,邮政信箱或房屋标识符(房屋号码,街道等)。我相信这称为泛化,可以使用UML以下列方式建模:
http://i.imgur.com/Vzx4Z.png(对不起链接,但我没有足够的声誉来发布图片)
PostalAddressPostalBox
和PostalAddressHouseIdentifier
当然会有更多属性和与其他实体/表的关系。与Person类相同。其他类也会引用邮政地址,因此不仅仅是人。
我的问题是,如果这是建模这个问题的正确方法,以及我如何在SQL(模式方面)中实现它以及我在C#中的实体应该是什么样的?
提前谢谢
答案 0 :(得分:1)
我认为你不应该将PostalAddress
重用于不同的实体。更改给定实体的地址会更加困难。
对于关系数据库,有一些选项,如class table inheritance。
或者single table inheritance或concrete table inheritance。由你决定权衡取决于你。