我正在开始一个新项目,我即将采取最重要的设计决策。
我将使用PHP来动态创建动态查询。 (我想为用户提供与MS Excel中的动态表类似的东西。)
我有25个表,每个表大约4-6列,我将根据用户选择加入(大多数操作将计算AVG,SUM,COUNT等,具体取决于可能为5到5的某些值的过滤器6桌加入)。
我正在考虑动态制作所有这些JOINS和SELECTS以及GROUPS BY,但看起来它会非常复杂,所以我开始考虑使用视图来降低动态构建的代码的复杂性查询。
我还考虑在查询中避免使用GROUPS BY,并使用代码中的循环和数组来计算聚合函数。
我想知道您推荐哪种方法,或者如果您有任何消息或提示,将不胜感激。
答案 0 :(得分:1)
唯一有效的答案是为此创建自己的框架。我做了很多次。您想要的内容或多或少看起来像一个复杂的报表生成器,它可以动态生成报表,但您希望为客户端创建一个带有可视化辅助工具的复杂查询生成器。
我要做的第一件事是使用代表每个表的模型,并提供描述表字段的机制,以便向用户显示字段。然后在模型中创建一个链接机制,说明:如果我链接此表和此表,我应该使用什么JOIN。
让您的用户选择要使用的列的模型,然后使用模型为您创建查询。它实际上运作良好但需要相当长的时间才能完成。
祝你好运