如何在MySQL中存储未定义数量的内容?
比如说,我们有一些拥有财产的人的数据。人可以什么都没有,也可以什么都没有。这样存储数据的正确方法是什么 据我所知,MySQL没有提供将数组存储为数据类型的方法。如果是的话,也许会是这样:如何在MySQL中存储未定义数量的内容?,mysql,database-design,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 ); 我相信你要找的是三张
CREATE TABLE person (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
possessions ARRAY NOT NULL
);
我相信你要找的是三张桌子(或者两张,如果每张桌子只能由一个人拥有)
如果每件物品只能由一个人拥有,你可以通过删除table person Occession并将PersonId作为物品表的一列,下到两张表中我相信你会寻找三张表(如果每件物品只能由一个人拥有,则两张表)
如果每件物品只能由一个人拥有,你可以通过删除table person Occession并将PersonId作为物品表的一列,下到两张表中我相信你会寻找三张表(如果每件物品只能由一个人拥有,则两张表)
如果每件物品只能由一个人拥有,你可以通过删除table person Occession并将PersonId作为物品表的一列,下到两张表中我相信你会寻找三张表(如果每件物品只能由一个人拥有,则两张表)
如果每个财产只能由一个人拥有,您可以通过删除表PersonOwnage并将PersonId作为财产表的一列来进入两个表创建一个链接表,并将该人的每个财产存储到与
id
链接的表中,这是否意味着我必须定义多少用于存储数据的表(或列)?但是,我的问题是关于创建表,我们不知道要插入多少列。您使用EAV设计来存储未定义数量的未定义“东西”。用谷歌搜索它来查看它是什么,你不需要开箱即用。最好的标准方法是使用另一个表,它将通过ID链接到主表。但是如果你不确定需要在链接表中创建的列的数量,你可以将Occessions列指定为VARCHAR
,将用逗号分隔或使用其他字符分隔财产。@Saagar,“逗号分隔”。不,很糟糕。OP澄清其他人的建议:两张桌子,人和财产。person只需要id和name,哪些财产需要id(这将允许您链接到person表,可能是一个类型varchar(或者enum,如果您有一组财产类型)列(进一步定义财产类型),以及thing列,也可以是varchar(财产-车、笔,等等)。每个插入到物品表中都会列出id、类型和财产,一行。因此,从id=10125的物品中选择*将列出所有。创建一个链接表,并将每个人的财产存储到与id
链接的表中。这是否意味着我必须定义有多少表(或列)存储数据?但是,我的问题是关于创建表,我们不知道要插入多少列。您使用EAV设计来存储未定义数量的未定义“东西”。用谷歌搜索它来查看它是什么,你不必开箱即取。最好的标准方法是使用另一个表,它将通过ID链接到主表。但是如果你不确定需要在链接表中创建的列数,你可以将Occessions列指定为VARCHAR
,这将用逗号分隔或使用其他字符分隔财产。@Saagar,“逗号分隔”。不好。请用OP澄清其他建议:两个表,person和properties。person只需