为内部具有复杂数据的实体设计扩展属性

时间:2010-03-11 09:14:46

标签: architecture

我有设计问题。我有像“人”这样的实体。 Person具有以下属性:FirstName,LastName,Gender,BirthDate,.... 在应用程序中创建人员时的最终用户可能需要定义未在数据库表模式(或类人员)中定义的另一个属性。例如:最终用户nead将“property1”定义为其字符串属性。或者nead将“proerty2”定义为其图像,或者需要将“property3”定义为其复杂类型。

请将您的设计解决方案分为两个级别: 1数据库表设计
2级设计

技术:.NET Framework,SQL Server,WCF(所有实体必须是有线连线,扩展属性中的特殊complec数据)
谢谢你。

2 个答案:

答案 0 :(得分:0)

这里有一个适合您的启动器,虽然更多信息会有所帮助,例如您正在使用的平台。

您可以尝试使用值/密钥对方法,但您需要进一步扩展此方法,以便为不同的实体实例分配不同的值。

在您的数据库中,您可能有一个表格:

  • 唯一行ID
  • 实体ID
  • 属性键
  • 属性值

如果您要将其重复用于其他实体类型,则需要一个额外的列来保持这些类型的分离。

如果你在.Net工作,你可以设计一些界面来描述你想要在API级别使用的某些属性。

您可以通过作为“属性实用程序”的类访问数据库中的属性,这将由实体或创建它们的工厂在内部使用。

答案 1 :(得分:0)

这看起来像Entity-Attribute-Value model。寻找技术堆栈的实现。