我面对客户的应用程序如下所示:
- 它允许最终用户输入“材料”。
- 对于这些材料,它们可以附加任意数量的“属性”。
- 属性可以有任何类型的值:decimal、int、dateTime 和 varchar(长度从 5 个字符到大块文本不等),
本质上,Schema 看起来像这样:
材料
MaterialID int not null PK
MaterialName varchar(100) not null
属性
PropertyID
PropertyName varchar(100)
MaterialsProperties
MaterialID
PropertyID
PropertyValue varchar(3000)
该应用程序的一个基本功能是搜索功能:最终用户可以通过输入以下查询来搜索材料:
- [属性] 检查日期 > [日期时间值]
- [属性] serialNr = 35465488
猜猜这在包含近 200 万条记录的 MaterialsProperties 表中的表现如何。
数据库最初是在 SQL Server 2000 下创建的,后来迁移到 SQL Server 2005
怎样才能做得更好?