何かの量を表す数百の列を持つ大規模な(SQLServer)データベースを継承しました。これらの値の単位(「ガロン」、「インチ」など)は、拡張プロパティのMS_Descriptionフィールドに格納されます。この情報を保存するより良い方法があるかどうか疑問に思っています。ドキュメンテーションの目的には適していると思いますが、このデータに基づいて堅牢な単位変換計算を行うことは困難です。この時点で、私は侵襲的な変更を行う準備ができていませんが、そうする機会を得た場合、この点で推奨されるベストプラクティスは何ですか?私の頭の上のオプションには、次のものがあります。
- 列名を含まれる単位に変更します(例: "TotalVolumeInGallons"。これにより、情報が少し入手しやすくなりますが、それでも私には弱いようです。)
- すべての「金額」列に対応する個別の「単位」列を追加します(この列はnvarcharであるか、単位変換の計算を容易にする個別の単位テーブルへの外部キーである可能性があります。多くの列は、データベースのサイズをかなり2倍にする可能性があります-ひどく冗長なデータです。)
- ユニット専用の拡張プロパティで新しいフィールドを作成します。(残念ながら、これがUnitsテーブルの外部キーになるとは思わない。)
- 私が見落としている別のアイデアはありますか?
更新: @Todd Everettの答えを読んだ後、考えられる解決策が思いついたので、先に進んで自分の質問に答えます。(下記参照)