1. ホーム
  2. sql-server-2008

[解決済み] 単位変換テーブルのデータベース設計は?

2022-02-08 01:39:43

質問事項

私は単位を格納するためのテーブルを設計しようとしているこのテーブルは、単位変換に使用され、私のテーブルの構造は、画像のようなものです。

このテーブル構造は、あるタイプから別のタイプにユニットを変換するのに十分ですか?

どのように解決するのですか?

それは 十分 しかし、これでは問い合わせが不必要に難しくなってしまいます。例えば、誰かが「1トンは何キログラムですか?あるいは、1ミリグラムは?キログラムの行をたくさん用意してお互いを参照するか、必要なレベルに達するまで何度もクエリーを実行する必要があります。

通常は、接続テーブルでそれを行います。つまり、カラムの名前を使えば、次のようなことになります。

Units (unit_ID, Name, unit_Type, unit_Group, IsDeleted)

IsFactorOf(unit_ID, parent_ID, factor)

ここで、quot;IsFactorOf" において、unit_ID は子ユニットへのFK、parent_ID は親ユニットへのFK(子-親は、quot;IsFactorOf" において、unit_ID は子ユニットへのFK)。 factor 要素 - 'child is factor times of parent') で、両方のキーがPKを構成しています。

これで、それぞれの変換にIsFactorOfを入力することで、同じ種類の利用可能な単位でキロがいくらになるかを定義することができます。当然、双方向の変換が行われることになるのだが...。