【发布时间】:2010-09-13 20:14:10
【问题描述】:
我有一个sections 表和一个items 表。
问题是每个项目可能在一个或多个部分中,因此每个项目的简单“section_id”将不起作用,并且 sql 没有办法存储数组,我可以说“WHERE 5 in section_ids"...
我考虑过将 id 列表存储为逗号分隔的字符串,问题是我看不到任何方法来检查项目是否在 sql 查询的给定部分中。我在这里看到的唯一选项是选择整个表,并在 php.ini 中解析字符串。不用说,这不是一个好主意。
有没有更好的方法来“链接”具有多个部分的项目,并且能够轻松选择给定部分 ID 的所有项目?
【问题讨论】:
-
如果您使用 MySQL 并且您的数据集很大或者每个项目的节数很小,那么 FIND_IN_SET 选项实际上可能值得研究。如果以上都不适用,那么请继续使用多对多选项,这至少具有正统的优点。
标签: sql database-design