MySQL多个表或单个字段的多个值?

时间:2015-05-10 09:30:52

标签: php mysql database database-design relational-database

这是我一段时间以来遇到的问题,不确定解决问题的最佳方法是什么。 我可能更容易用一个例子来解释。

所以我有很多收藏品和许多物品。某些项目可以属于一个或多个集合,或者根本不属于任何集合。收藏集必须至少有一个项目,但它可以拥有的项目数量没有限制。

如何将此信息存储在MySQL数据库中/最有效的方法是什么?

我已经有一个项目表,每个项目都有一个唯一的ID,这就是简单的部分,创建集合部分就是我被卡住的地方。

我是否为每个集合创建一个新表,为它提供一个唯一的表名,并为该集合中的每个项插入新记录?

我是否只创建一个大型集合表,每个记录是一个新集合和一个所有项目ID的单个字段?

还有另一种方法吗?

如果这对数据库结构有任何影响,将使用php网站进行查询。

1 个答案:

答案 0 :(得分:2)

我认为你应该......

创建一个包含所有馆藏的collection table,一个包含所有项目的item table,以及一个collection-item map table,其中包含id(主键),collection_id(收集表的外键),item_id(项目表的外键)。此表将表示集合和项目之间的关系。它可以有任意数量的集合项关系。

希望这有帮助。