0

状況は次のとおりです。

CUSTOMER と ORDER、INVOICE、PAYMENT などの関係を記録するデータベースを取得しました。

私の現在の設計は、CUSTOMER リンクから ORDER、ORDER リンクから INVOICE、INVOICE リンクから PAYMENT です。

私の質問は、注文、請求書、支払いを処理している顧客を実際に知りたいということです。では、CUSTOMER を FK として表示したいすべてのテーブルに CUSTOMER_ID を入れる必要がありますか? しますか

または、クエリで提示できますか?

4

1 に答える 1

1

いいえ、あなたはしません。適切なデータベース設計に従い、冗長なデータ ストレージを回避することを目的とする場合は、複数の結合を含むクエリを作成する必要があります。

例えば:

SELECT c.CUSTOMER_ID, ..., p.PAYMENT_ID, ...
FROM CUSTOMER c,ORDER o,INVOICE i,PAYMENT p
WHERE c.CUSTOMER_ID = o.CUSTOMER_ID
and o.ORDER_ID = i.ORDER_ID
and i.INVOICE_ID = p.INVOICE_ID 
于 2012-11-08T19:45:01.597 に答える