你如何在 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(如果每个物品只能由一个人拥有,则为两个)。
- Table Person 有 PersonId (INT PK Identifier) 和 PersonName (along
与任何其他人的属性)
- Table Possession 有 PossessionId
(INT PK 标识符)和 PossessionName(连同任何其他
附身属性)
- Table PersonPossession 有 PersonId 和
PossessionId 表示此人拥有该财产。
这是一个相当简单的 m:n 关系设计(即一个人拥有一定数量(可能为 0)的财产,而财产有一定数量的 "owners")
如果每个财产只能由一个人拥有,您可以通过消除 table PersonPossession 并将 PersonId 作为财产的一列来减少到两个 tables table
说,我们有拥有某些财产的人的数据。这个人可以一无所有或拥有任何东西。这样存储数据的正确方法是什么?
据我所知,MySQL 没有提供将数组存储为数据类型的方法。如果是这样,也许它会是这样的:
CREATE TABLE person (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
possessions ARRAY NOT NULL
);
我相信您要找的是三个 table(如果每个物品只能由一个人拥有,则为两个)。
- Table Person 有 PersonId (INT PK Identifier) 和 PersonName (along 与任何其他人的属性)
- Table Possession 有 PossessionId (INT PK 标识符)和 PossessionName(连同任何其他 附身属性)
- Table PersonPossession 有 PersonId 和 PossessionId 表示此人拥有该财产。
这是一个相当简单的 m:n 关系设计(即一个人拥有一定数量(可能为 0)的财产,而财产有一定数量的 "owners")
如果每个财产只能由一个人拥有,您可以通过消除 table PersonPossession 并将 PersonId 作为财产的一列来减少到两个 tables table