php - 进行动态查询(使用 PHP+MySQL)的最佳方法是什么?

标签 php mysql

<分区>

我正在开始一个新项目,我即将做出可能是最重要的设计决定。

我将使用 PHP 即时创建动态查询。 (我想为用户提供一些类似于 MS Excel 中的动态表格的东西)。

我有大约 25 个表,每个表大约有 4-6 列,我将根据用户选择加入这些表(大多数操作将计算 AVG、SUM、COUNT 等,具体取决于可能为 5 到 5 的值的一些过滤器6 表加入)。

我正在考虑即时进行所有这些 JOINS 和 SELECTS 以及 GROUPS BY,但看起来它会非常复杂,所以我开始考虑使用 View 来降低动态构建代码的复杂性查询。

我还考虑过在查询中避免使用 GROUPS BY,并在代码中使用循环和数组来计算聚合函数。

我想知道您会推荐这些方法中的哪一种,或者如果您有任何建议或提示,我们将不胜感激。

最佳答案

唯一有效的答案是为此创建您自己的框架。我已经做过好几次了。您想要的东西看起来或多或少像一个复杂的报告生成器,可以动态生成报告,但您想要为客户创建一个具有视觉辅助的复杂查询生成器。

我要做的第一件事是使用一个模型来表示每个表并提供描述表字段的机制,以便您可以向用户显示这些字段。然后在你的模型中创建一个链接机制,它说:如果我链接这个表和这个表,我应该使用什么 JOIN。

让您的用户选择要使用的列的模型,然后使用您的模型为您创建查询。它实际上运行良好,但需要相当长的时间才能完成。

祝你好运

关于php - 进行动态查询(使用 PHP+MySQL)的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8258316/

相关文章:

php - 设置 PHP 函数超时

php - 编译 Doctrine 作为 php 的扩展

mysql - 从 mysql 查询中排除连接列

phpmyadmin - 如何更新整个 MySQL 数据库的结构?

php - mysqli_real_escape_string 在 array_map 内不起作用

php - 长时间运行的进程调试。斯特雷斯,布鲁克

php - PHP 的日志流过滤器?

php - 根据 Woocommerce 中的产品类别隐藏运输方式

javascript - 如何将json数据插入到表中?

mysql - 在 mysql 中创建新列以将 unix 时间转换为可读的日期和时间