Ansatz zum generischen Datenbankdesign

Eine Anwendung, mit der ich bei einem Kunden zu tun habe, sieht folgendermaßen aus:

Endbenutzer können "Materialien" eingeben.An diese Materialien können beliebig viele "Eigenschaften" angehängt werden.Eigenschaften können einen beliebigen Wert vom Typ "decimal", "int", "dateTime" und "varchar" haben (Länge variiert von 5 Zeichen bis zu großen Textblöcken).

Im Wesentlichen sieht das Schema so aus:

Materialien
MaterialID int nicht null PK
MaterialName varchar (100) ist nicht null

Eigenschaften
PropertyID
PropertyName varchar (100)

MaterialsProperties
MaterialID
PropertyID
PropertyValue varchar (3000)

Ein wesentliches Merkmal der Anwendung ist die Suchfunktion: Endbenutzer können Materialien durchsuchen, indem sie Fragen eingeben wie:

[Eigenschaft] inspectionDate> [DateTimeValue][Eigenschaft] serialNr = 35465488

Ratet mal, wie sich das in der MaterialsProperties-Tabelle mit fast 2 Millionen Datensätzen verhält.

Die Datenbank wurde ursprünglich unter SQL Server 2000 erstellt und später auf SQL Server 2005 migriert

Wie kann das besser gemacht werden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage