Aproximación al diseño genérico de la base de datos.

Una aplicación que me enfrento a un cliente, se ve así:

Permite a los usuarios finales ingresar "materiales".A esos materiales, pueden agregar cualquier número de "propiedades".Las propiedades pueden tener cualquier valor de tipo: decimal, int, dateTime y varchar (la longitud varía de 5 caracteres a grandes porciones de texto),

Esencialmente, el esquema se ve así:

Materiales
MaterialID int no nulo PK
MaterialName varchar (100) no nulo

Propiedades
PropertyID
PropertyName varchar (100)

MaterialesPropiedades
MaterialID
PropertyID
PropertyValue varchar (3000)

Una característica esencial de la aplicación es la funcionalidad de búsqueda: los usuarios finales pueden buscar materiales ingresando consultas como:

[propiedad] inspectDate> [DateTimeValue][propiedad] serialNr = 35465488

Adivina cómo funciona esto en la tabla de propiedades de materiales con casi 2 millones de registros.

La base de datos se creó inicialmente bajo SQL Server 2000 y luego se migró a SQL Server 2005

¿Cómo se puede hacer esto mejor?

Respuestas a la pregunta(2)

Su respuesta a la pregunta