値は、特定の単位(メートルなど)を使用してデータベースに常に保存する必要がありますか、追加のフィールドまたはテーブルを使用して単位を設定できる必要がありますか?特定の単位(メートルなど)を使用してデータベースに値を保存する必要がありますか、追加のフィールドで単位を設定できる必要がありますか?
例1:ユニットは、フィールドの一部として定義
buildings
-----------------------------
building_id INT
date_built_utc DATE
reported_area_m DOUBLE
例2:
buildings
-----------------------------
building_id INT
date_built DATE
date_built_unit VARCHAR(50)
reported_area DOUBLE
reported_area_unit VARCHAR(50)
は、私は強く、実施例1に傾いています別のフィールドで定義されたユニット理由データを格納するための標準ユニットが1つあれば、値の報告はより簡単になり(エラーが発生しにくくなります)。アプリケーション層は、必要に応じてユニット間の変換を容易に処理できます。
どの方法が好ましいのでしょうか?その理由は何ですか?
このユニットを使用すると、すべてのユニットを格納することによって_問題が発生する可能性があります。例えば:単位「B」で顧客の注文1000年、単位「A」内のデータベースは常に店なので、あなたは、画面上のユニット「B」に戻っユニット「A」から変換するときの列は、545.5455ユニット「A」が含まれ、混乱した顧客は、彼らが問題を引き起こす可能性のあるユニット「B」で999.98を「本当に」注文したことを知るでしょう。 –
私はあなたに同意します、KM。しかし、私はまだ、このアプローチは、1つの列に複数のユニットを許可するよりも潜在的な混乱が少ないと考えています。 –
これは、私が避けようとしている主な問題です(一般的な混乱とメンテナンスの頭痛ではなく、軌道災害です)。 –