MySQL 多个表或单个字段的多个值?
MySQL Multiple tables or multiple values for single field?
这个问题我已经有一段时间了,但不确定解决它的最佳方法是什么。
我用例子来解释可能更容易。
所以我有很多 collection 和很多项目。有些项目可以属于一个或多个 collection 或 none。 Collections 必须至少拥有一件物品,但它可以拥有的物品数量没有限制。
如何将此信息存储在 MySQL 数据库中/最有效的方法是什么?
我已经有 table 个项目,每个项目都有一个唯一 ID,这是简单的部分,创建 collections 部分是我遇到的问题。
我是否为每个 collection 创建一个新的 table,为其指定一个唯一的 table 名称并为属于该 collection 的每个项目插入新记录?
我是否只创建一个大的 collection table,每条记录都是新的 collection 和所有项目 ID 的单个字段?
还有其他方法吗?
如果这对数据库结构有任何影响,将使用 php 站点进行查询。
我觉得你应该..
创建一个包含所有集合的 collection table
,一个包含所有项目的 item table
,以及一个包含 id
(主键)的 collection-item map table
,collection_id
(集合的外键 table),item_id
(项目的外键 table)。这个 table 将表示集合和项目之间的关系。它可以有任意数量的集合项关系。
希望这对您有所帮助。
这个问题我已经有一段时间了,但不确定解决它的最佳方法是什么。 我用例子来解释可能更容易。
所以我有很多 collection 和很多项目。有些项目可以属于一个或多个 collection 或 none。 Collections 必须至少拥有一件物品,但它可以拥有的物品数量没有限制。
如何将此信息存储在 MySQL 数据库中/最有效的方法是什么?
我已经有 table 个项目,每个项目都有一个唯一 ID,这是简单的部分,创建 collections 部分是我遇到的问题。
我是否为每个 collection 创建一个新的 table,为其指定一个唯一的 table 名称并为属于该 collection 的每个项目插入新记录?
我是否只创建一个大的 collection table,每条记录都是新的 collection 和所有项目 ID 的单个字段?
还有其他方法吗?
如果这对数据库结构有任何影响,将使用 php 站点进行查询。
我觉得你应该..
创建一个包含所有集合的 collection table
,一个包含所有项目的 item table
,以及一个包含 id
(主键)的 collection-item map table
,collection_id
(集合的外键 table),item_id
(项目的外键 table)。这个 table 将表示集合和项目之间的关系。它可以有任意数量的集合项关系。
希望这对您有所帮助。