我有一个基础实体(项目),它将承载具有完全不同属性的大量项目类型(> 200)。我想要一个干净的便携式和快速的解决方案,并且想出了一个想法,maby 有一个我不知道的名字。
它是这样的:
items-entity 包含基类字段 + 子类字段的附加字段,但具有虚拟名称、ItemID、ItemNo、ItemTypeID、int1、int2、dec1、dec2、dec3、str1、str2
引用的 itemtype-record 包含类型名称和子实体 (1:n):
itemtypefields [itemtypeid,name,type,realfield] [53,MaxPressure,dec,dec3] 中的示例
它的局限性:
- 难以估计基类中的现场要求
- 更难根据子类型添加域/检查约束
- 需要应用层将标记的 sql 转换为真正的查询
- 一次只能查询一种类型,因为共享属性可能被定义为不同的“真实字段”。
第三条解释:
select ItemNo,_MaxPressure_ from items where ItemTypeID=10 and _MaxPressure_>42
should translate to:
select ItemNo,dec3 as MaxPressure from items where ItemType=10 and dec3>42
(不能用 sp 或 udf 的权利来做到这一点 - 或者有可能吗?)
但好处:
- 表现
- 易于 CRUD 操作
- 更容易在应用程序级别进行排序/过滤。
现在 - 它有名字吗?