0

例:さまざまな金属の名前と特性(密度、色、融点など)を含むデータベース。あるソース(ウェブサイト、本など)からの密度と、別のソースからの融点の値を見つけた可能性があります。そして、どのソースから任意の値が来たのかを取得できるようにしたいのです。

簡単な解決策は、すべてのプロパティに対して列「密度」と列「密度ソース」などを作成することですが、これはこれを解決するための非常に冗長な方法のようです。はい、「密度ソース」は、ソースを綴る別のテーブルを持つ単純な整数である可能性があります。

ある意味で、脚注のようなものをフィールドに追加したいと思っています。

4

2 に答える 2

0

source難しい答えは、テーブルを持って、情報の各ビットについて各ソースに戻るリンクを持っているよりも冗長なものでどこにも行かないということです。

できることは、密度、色、融点などの可能なソースのマトリックスを作成し、それにユニバーサルな「SourceKey」を割り当てることです。これにより、実際のプロパティテーブルに1つのソースを保存するだけで済みます。次に、密度ソースを取得するには、次のようにします。

select
    s.SourceName as DensitySource,
    m.*
from
    metals m
    inner join SourceMatrix sm on
        m.SourceKey = sm.SourceKey
    inner join Source s on
        sm.DensitySourceKey = s.SourceKey

しかし、それはあなたが持つことができる組み合わせの数とそれがまったく効率的であるかどうかに完全に依存します。データベースにはリレーションが保存されますが、系統は保存されません。

于 2011-12-16T18:22:17.043 に答える
0

列全体にフラグを立てる場合は、SQLServerの拡張プロパティまたはMySQLCOMMENTオプションを使用できます。これらは、データベースのリレーショナル設計の「外部」です。

列ごとおよび行ごとにフラグを立てる場合は、モデルに格納する関連データであるため、別の列を追加します

于 2011-12-16T18:22:38.430 に答える