这是在 SQL 数据库中存储项目列表的好方法吗?

Is this a good method for storing lists of items in an SQL Database?

这只是一个非常笼统的数据库管理问题。假设我有一个人员列表,我想为 table 中的每一行存储第二个列表。这是我的解决方案。

Table 一个人可能拥有的物品;

Table 的人拥有这些项目的组合;

说明;

John has an order of 6, which is 4 + 2, or a Cheeseburger and a Milkshake.
Mary has an order of 25, which is 16 + 8 + 1, or a Soda, Hotdog, and Fries

我想知道的是,这种类型的列表存储是否已经有了术语,以及与存储多个键相比,这样做的优点/缺点是什么。我还想知道是否有任何数据库管理系统已经以类似的方式处理列表中的列表,以及我是否不必担心像这样实现我的数据库。

这是可怕的做法。你会得到加起来相同的倍数。您将不断翻译这对性能不利。在进行任何数据库设计之前阅读规范化。在尝试真实解决方案之前,不要考虑以任何非关系方式使用真实数据库。如果您确实有无法通过这种方式解决的非关系需求,那么关系数据库不是满足您需求的数据存储的正确工具。这不是其中之一。这是一个关系问题,应该几乎总是实际解决。

一般来说,此类问题可以通过使用包含可用项目列表的项目 table 来解决。包含客户详细信息的客户 table。订单 table 包含有关订单的详细信息,例如日期时间、客户等,订单详细信息 table 包含该订单中的特定项目列表。当然,当你这样做时,你需要设置 prepfer FOreign Keys 和索引。