我需要实现报表中存在的多种实体类型,如产品、客户等。这些实体的属性都可以是字符串。因为可能有相当多的这些“实体”,我不想为每一个创建很多很多表。因此,我创建了一个通用“类”表,其中包含多个 C1...C30 类型的列varchar(max)
。
然后我为每个实体创建一个视图,例如vwProduct
. 然后,我将这些视图映射到实体框架中,作为实体(即Product
),我从中受益于所有 EF 优点,例如数据注释。我使用了一个很好的 EF 设计器工具,它使我也可以在一个地方管理 EF 模型。
但是,由于某些实体可能只有 5 个属性,因此会有许多 Cn 列保留为空。这是一个问题吗?我认为不是因为 SQL Server 2008 R2 已针对此类事情进行了优化。也许我应该使用更好的数据类型。
也不确定性能将如何受到影响,因为将通过视图查询/更新一个物理表的所有内容。然而,这又是企业 DBMS 存在的理由。
通用物理表、数据库视图和 EF(POCO 类)的组合对我来说似乎很强大,尤其是在 MVC 框架中。
想法?
非常感谢。