你如何在 MySQL 中存储未定义数量的东西?

How do you store undefined number of things in MySQL?

说,我们有拥有某些财产的人的数据。这个人可以一无所有或拥有任何东西。这样存储数据的正确方法是什么?

据我所知,MySQL 没有提供将数组存储为数据类型的方法。如果是这样,也许它会是这样的:

CREATE TABLE person (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    possessions ARRAY NOT NULL
);

我相信您要找的是三个 table(如果每个物品只能由一个人拥有,则为两个)。

  1. Table Person 有 PersonId (INT PK Identifier) 和 PersonName (along 与任何其他人的属性)
  2. Table Possession 有 PossessionId (INT PK 标识符)和 PossessionName(连同任何其他 附身属性)
  3. Table PersonPossession 有 PersonId 和 PossessionId 表示此人拥有该财产。

这是一个相当简单的 m:n 关系设计(即一个人拥有一定数量(可能为 0)的财产,而财产有一定数量的 "owners")

如果每个财产只能由一个人拥有,您可以通过消除 table PersonPossession 并将 PersonId 作为财产的一列来减少到两个 tables table