Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
情况如下:
我有一个数据库,记录了客户与订单、发票、付款等之间的关系。
我目前的设计是:CUSTOMER 链接到 ORDER,ORDER 链接到 INVOICE,INVOICE 链接到 PAYMENT。
我的问题是,我实际上想知道哪个客户正在处理订单、发票和付款。那么我是否必须将 CUSTOMER_ID 放在我想将 CUSTOMER 显示为 FK 的每个表中?会吗
或者我可以通过查询来呈现它?
不,你没有。如果您的目标是遵循正确的数据库设计并避免冗余数据存储,您应该只编写具有多个连接的查询。
例如:
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