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

时间:2015-04-02 14:11:13

标签: mysql database-design

说,我们有拥有一些财产的人的数据。这个人什么都没有或什么都没有。存储这类数据的正确方法是什么?

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

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

1 个答案:

答案 0 :(得分:3)

我相信你要找的是三张桌子(如果每个藏品只能由一个人拥有,则为两张)。

  1. 表人具有PersonId(INT PK标识符)和PersonName(沿着 与任何其他人的属性)
  2. 表占有有占有率 (INT PK Identifier)和PossessionName(以及其他任何名称) 拥有属性)
  3. 表PersonPossession有PersonId和 PossessionId表示该人拥有该财产。
  4. 对于m:n关系来说,这是一个相当简单的设计(即一个人拥有一定数量(可能是0)的财产,并且财产拥有一定数量的“所有者”)

    如果每个拥有只能由一个人拥有,你可以通过删除表PersonPossession并让PersonId成为Possessions表的一列来下到两个表