【发布时间】:2014-01-30 16:11:37
【问题描述】:
考虑一种情况,数据库表的架构可能会发生变化,即字段、字段数量和这些字段的类型可能会因客户端 ID 等原因而有所不同。
以Users 表为例。通常我们会在一个水平表中表示它,其中包含以下字段:
- 名字
- 姓氏
- 年龄
但是,正如我所提到的,每个客户可能有不同的要求。
我在想,要在 SQL Server 等关系数据库中表示Users 的多模式方法,这将使用两个表来完成:
- UsersFieldNames - {FieldNameId, ClientId, FieldName, FieldType}
- UsersValues - {UserValueId, FieldNameId, FieldValue}
要检索数据(首先使用 EntityFramework DB),我在考虑数据透视表,使用 LINQ Extentions - Pivot Extensions 之类的东西可能会有用。
我想知道可以满足此要求的任何其他方法。
我问这个问题是出于我自己的好奇心,因为我记得过去出现过类似的对话,并且与 this 提出的问题有关。
谢谢。
【问题讨论】:
标签: sql-server relational-database database-schema