1

我真的找不到任何有用的东西。我正在使用 Codeigniter 和 MySQL 制作自己的管理面板,一切都已完成,除了多对多关系。

主表是产品表。我有 5 个多对多关系(类别、材料、颜色、标签、城市)。它们每个都有 5 个表,其中包含这些列(ID 和类别/标签/城市的名称......),当然,在它们之间有一些表,它们同时具有 Product 和另一个表的 ID。

首先,我想在一个表中列出所有产品,并且在列中我想有类别、材料、标签等列,并且在对应的单元格中,所有项目都用逗号列出...

这是一排的样子。

| 身份证 | 姓名 | 说明 | 1 类,2 类,... | 材料 1,... | 标签1,标签2,标签3,标签4,... |

我希望你能理解我。接下来,希望 Add 函数看起来很简单,但我猜 Update 函数应该真的很棘手,所以任何帮助也很感激,尽可能快地解决它。我想首先我应该检查所有选定的项目以检查链接表中是否有任何新条目,然后检查链接表中是否有任何未选中的条目以将其删除。如何做到这一点最优化?

4

1 回答 1

2

这不是直接的 codeigniter 事情,更多的是 SQL 的事情。

管理显示是简单的部分。您可以加入所有相关表格和GROUP BY您的表格,product_id因此您的结果集只显示一个产品一次。然后你可以使用GROUP_CONCATMySQL 的功能对每行的相关表文件进行分组。

其性能实际上取决于应用程序及其用法。例如,对于我们拥有的应用程序,它可以更快、更灵敏地在每行返回的每行运行多个查询product_id来获取其他信息,而不是运行一个查询来一次获取所有信息。因此,您必须对其进行测试。

随着更新,是的,它可能会很乱。一种方法是删除所有现有的product_id,然后添加所有提交的。另一种是检查现有的与提交的,只添加新的并删除不匹配的。我希望这对你有意义:)

于 2013-03-10T08:19:55.867 回答