2016-05-27 43 views
0

假設我有一個採購訂單表。一位顧客可能會購買許多產品。我需要將所有這些產品及其相關價格存儲在單一記錄中,例如發票格式。如何在SQL Server中創建一個爲一個單元存儲多個值的表?

+4

不要做這個!!!!!!!!將每個購買的產品存儲在單獨的行中,但將它們分配給與訂單號相同的密鑰。 –

+0

正如M.Ali所說那樣會變成一個非常糟糕的設計。如果您只需要更新特定訂單,您會做什麼? – bmsqldev

回答

0

如果你可以改變數據庫的設計,喜歡創建名爲PO_products另一個表具有PO_Id從PURCHASEORDER表的外鍵。這將更加靈活,併爲您的要求提供正確的設計。

如果由於某種原因,您很難存儲在一個單元中(我重新設計的不是一個好的設計),您可以使用XMLType並將所有產品信息存儲爲XML。

注意:除了糟糕的設計之外,將數據存儲爲XML存在顯着的性能成本。

0

這是客戶與產品之間n-n關係的典型示例。

可以說1個顧客可以有0到N個產品,1個產品可以由0到N個顧客購買。您想使用聯結表來存儲每個採購訂單。

此交接表可能包含購買的編號,客戶的編號和產品的編號。

https://en.wikipedia.org/wiki/Many-to-many_(data_model)

相關問題