0

以下に、Customer と Currency という 2 つのテーブルがあります。

シナリオ : 各顧客は、すべてのトランザクションに対して 1 つの通貨を定義する必要があります。通貨を顧客に関連付ける currency_id 列を配置しました。以下は、私の心に浮かぶいくつかの質問です。ばかげた質問かもしれません。しかし、私は自分自身をクリアしたいと思います。

  1. 顧客から見る : 1 人の顧客は 1 つの通貨を持っています ここに画像の説明を入力

  2. 通貨から見る : 1 つの通貨に 0 人以上の顧客を含めることができます。 ここに画像の説明を入力

ここで質問です。この種のシナリオでは、問題をどのように受け止めるべきでしょうか? 顧客 (1) または通貨 (2) から確認する必要があります。誰でも私にこれを説明できますか??

編集: 私の質問は、ERD の設計に関するものです。

4

4 に答える 4

1

顧客 (1) または通貨 (2) から確認する必要があります。

顧客の観点または通貨の観点からデータを表示できます。

あなたはそれを自分で言いました。特定の顧客の通貨を表示したり、特定の通貨の顧客数を数えたりできます。

リレーショナル データベースを通過するための「順序」はありません。必要な情報が提供されるようにリレーショナル テーブルを設計します。

于 2012-11-19T14:28:36.300 に答える
0

(@Gilbertの返信に賛成票を投じ、その後の議論を読んだ後、これを投げ入れます。)

2 つのテーブル間の関係は双方向になります。テーブル X はテーブル Y に関連し、テーブル Y はテーブル X に関連しています。あなたの場合、あなたが言ったとおりです。

  • 1 人の顧客は 1 つの通貨を持っています
  • 1 つの通貨で 0 人以上の顧客を持つことができます

どちらの口頭での説明も正しいです。

ERDの表現に関しては、2番目のケースがこれを最もよく表しています。あなたが学者でない限り、表現の詳細に行き詰まらないでください。非常によく似た表記法が数多くあります。「1対0以上」と表示されていればOKです。

実装に関しては、すでにご存じだと思います。親テーブルには主キー (CurrencyId) があり、子テーブルには独自の主キー (CustomerID) と、親テーブルに関連する外部キー (CurrencyID) があります。

于 2012-11-19T15:05:50.007 に答える
0

どちらの側からも関係を見ていません。ここにあるのは、1 つの通貨に関連するゼロから多数の顧客であり、さまざまな方法でグラフィックまたはテキストとして表現できます。たとえば、「0..*:1」。

于 2012-11-19T14:28:18.950 に答える
0

On terms of an ERD 2 is correct. You have a foreign key in Customer referencing the primary key of Currency, so you have a many-to-one relationship from Customer to Currency. 2 correctly shows this relationship diagrammatically.

于 2012-11-19T14:28:02.900 に答える