1

私のデータベースモデルでは、テーブルPROPERTYを表現したいと思います。このテーブルには、他のフィールドの中でも、「value」というフィールドが必要です。この値には、整数、小数、テキスト、日付など、任意のタイプを含めることができる必要があります。これを実現するための最良のアプローチは何ですか。タイプ(valueInteger、valueDateなど)ごとに1つのフィールドがあり、目的のフィールドのみを入力します->多くの空のフィールド?または、正しいタイプに解析する必要がある文字列フィールドのみを格納しますか?

PROPERTYテーブルに加えて、lowerValueフィールドとupperValueフィールドを含むPROPERTY_RANGEテーブルも必要になります。タイプごとにフィールドを選択した場合、この表では、サポートされているタイプごとに2つのフィールド(下、上)が必要になります。

また、ある種のタブレットの継承を使用して「値」フィールドタイプを区別することも考えられます(ただし、これはショットガンでハエを殺す可能性があります)。

この質問を解決するための最良のアプローチは何ですか?

4

1 に答える 1

1

FWIW、正確さと保守性の両方のために、プロパティの可能なデータ型ごとに1つの列を含むテーブルを使用します。これは、さまざまなデータ型のフィルターが異なるレコードのクエリ中に特に役立ちます。すべての値を VARCHAR フィールドに収束させると、実行時にこれらの値を適切な型に変換する必要があり、テーブルのサイズによってはコストがかかる可能性があります。 .

于 2012-10-19T04:20:59.043 に答える