私が顧客に直面しているアプリケーションは、次のようになります。
- エンドユーザーが「材料」を入力できるようにします。
- それらの資料には、任意の数の「プロパティ」を追加できます。
- プロパティには、decimal、int、dateTime、varchar(5文字からテキストの大きなチャンクまでさまざまな長さ)の任意のタイプの値を指定できます。
基本的に、スキーマは次のようになります。
マテリアル
MaterialIDintnot null PK
MaterialName varchar(100)not null
プロパティ
PropertyIDPropertyNamevarchar
(100)
MaterialsProperties
MaterialID
PropertyID
PropertyValue varchar(3000)
アプリケーションの重要な機能は検索機能です。エンドユーザーは次のようなクエリを入力して資料を検索できます。
- [プロパティ]inspectionDate>[DateTimeValue]
- [プロパティ]serialNr= 35465488
これが、200万近くのレコードを含むMaterialsPropertiesテーブルでどのように機能するかを推測します。
データベースは、最初はSQL Server 2000で作成され、その後SQLServer2005に移行されました。
どうすればこれをより良くすることができますか?