Podejście do ogólnego projektu bazy danych

Aplikacja, z którą mam do czynienia u klienta, wygląda następująco:

umożliwia użytkownikom końcowym wprowadzanie „materiałów”.Do tych materiałów mogą dołączać dowolną liczbę „właściwości”.Właściwości mogą mieć dowolną wartość typu: decimal, int, dateTime i varchar (długość od 5 znaków do dużych fragmentów tekstu),

Zasadniczo schemat wygląda tak:

Materiały
MaterialID int null PK
MaterialName varchar (100) nie ma wartości null

Nieruchomości
PropertyID
PropertyName varchar (100)

Właściwości materiałów
MaterialID
PropertyID
PropertyValue varchar (3000)

Istotną cechą aplikacji jest funkcja wyszukiwania: użytkownicy końcowi mogą wyszukiwać materiały, wpisując zapytania takie jak:

[property] inspectionDate> [DateTimeValue][właściwość] serialNr = 35465488

Zgadnij, jak to działa w tabeli MaterialsProperties z prawie 2 milionami rekordów.

Baza danych została początkowo utworzona w programie SQL Server 2000, a później przeniesiona do SQL Server 2005

Jak można to zrobić lepiej?

questionAnswers(2)

yourAnswerToTheQuestion