私の要件は次のとおりです。
- 任意のデータ型のユーザー定義フィールドを動的に追加できる必要があります
- UDFをすばやくクエリできる必要があります
- データ型に基づいてUDFで計算できる必要があります
- データ型に基づいてUDFをソートできる必要があります
その他の情報:
- 主にパフォーマンスを探しています
- UDFデータを添付できるマスターレコードは数百万あります
- 私が最後にチェックしたとき、現在のデータベースには5,000万を超えるUDFレコードがありました
- ほとんどの場合、UDFは数千のマスターレコードにのみ添付され、すべてではありません
- UDFは結合されておらず、キーとして使用されていません。これらは、クエリまたはレポートに使用される単なるデータです
オプション:
StringValue1、StringValue2 ... IntValue1、IntValue2、...などで大きなテーブルを作成します。私はこのアイデアが嫌いですが、他のアイデアよりも優れていると誰かが教えてくれれば、それを検討します。
必要に応じてオンデマンドで新しい列を追加する動的テーブルを作成します。また、すべての列にインデックスを付けないとパフォーマンスが低下するので、このアイデアは好きではありません。
UDFName、UDFDataType、およびValueを含む単一のテーブルを作成します。新しいUDFが追加されたら、そのデータだけをプルして、指定されたタイプに解析するビューを生成します。解析基準を満たさないアイテムはNULLを返します。
データ型ごとに1つずつ、複数のUDFテーブルを作成します。したがって、UDFStrings、UDFDatesなどのテーブルがあります。おそらく#2と同じことを行い、新しいフィールドが追加されるたびにビューを自動生成します。
XMLデータ型?私はこれまでこれらを扱ったことがありませんが、言及されているのを見たことがあります。特にパフォーマンスに関して、私が望む結果が得られるかどうかはわかりません。
他に何かありますか?