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