0

情况如下:

我有一个数据库,记录了客户与订单、发票、付款等之间的关系。

我目前的设计是:CUSTOMER 链接到 ORDER,ORDER 链接到 INVOICE,INVOICE 链接到 PAYMENT。

我的问题是,我实际上想知道哪个客户正在处理订单、发票和付款。那么我是否必须将 CUSTOMER_ID 放在我想将 CUSTOMER 显示为 FK 的每个表中?会吗

或者我可以通过查询来呈现它?

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 回答