Подход к общему дизайну базы данных
Приложение, с которым я сталкиваюсь у клиента, выглядит так:
это позволяет конечным пользователям вводить «материалы».К этим материалам они могут добавлять любое количество «свойств».Свойства могут иметь любое значение типа: decimal, int, dateTime и varchar (длина варьируется от 5 символов до больших кусков текста),По сути, схема выглядит так:
материалы
MaterialID int not null PK
MaterialName varchar (100) не нуль
свойства
PropertyID
PropertyName varchar (100)
MaterialsProperties
MaterialID
PropertyID
PropertyValue varchar (3000)
Важной особенностью приложения является функция поиска: конечные пользователи могут искать материалы, вводя такие запросы, как:
[property] InspectionDate> [DateTimeValue][property] serialNr = 35465488Угадайте, как это работает с таблицей MaterialsProperties, содержащей почти 2 миллиона записей.
База данных была изначально создана под SQL Server 2000, а затем перенесена на SQL Server 2005
Как это можно сделать лучше?