如何在SQL Server中创建一个表,为一个单元格存储多个值?

时间:2016-05-27 09:28:37

标签: sql-server database-table

假设我有一张采购订单表。一个客户可能会购买许多产品。我需要将所有这些产品及其相关价格存储在一个记录中,例如发票格式。

2 个答案:

答案 0 :(得分:0)

这是客户与产品之间n-n关系的典型示例。

假设1个客户可以拥有0到N个产品,1个产品可以被0到N个客户购买。您希望使用联结表来存储每个采购订单。

此联结表可能包含购买的ID,客户的ID和产品的ID。

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

答案 1 :(得分:0)

如果您可以更改数据库设计,则首选创建另一个名为PO_products的表,该表将PO_Id作为PurchaseOrder表中的外键。这将更灵活,适合您的需求。

如果由于某种原因,您很难存储在单个单元格中(我重新迭代它不是一个好的设计),您可以使用XMLType并将所有产品信息存储为XML。

注意:除了设计不好外,将数据存储为XML还有很大的性能成本。