如何在 SQL 服务器中创建一个为一个单元格存储多个值的 table?

How do I create a table in SQL Server that stores multiple values for one cell?

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

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

假设 1 位顾客可以拥有 0 到 N 种产品,0 到 N 位顾客可以购买 1 种产品。您想要使用联结点 table 来存储每个采购订单。

这个结点table可能包含购买的id、客户的id和产品的id。

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

如果您可以更改数据库设计,最好创建另一个名为 PO_products 的 table,它具有 PO_Id 作为 PurchaseOrder table 的外键。这样会更灵活,并且是满足您要求的正确设计。

如果由于某种原因,您很难在单个单元格中存储(我重申这不是一个好的设计),您可以使用 XML类型并存储所有产品信息为 XML.

注意:除了糟糕的设计之外,将数据存储为 XML.

还会产生显着的性能成本