我想通过允许用户“动态”构建查询来构建对数据库的任意查询。对于每个对象/表,能够选择其属性,然后“构建”查询(将转换为SQL语句)并最终通过Web界面启动它。 例如,票务系统“rt”就是这样做的,另一个例子是http://gatherer.wizards.com/Pages/Advanced.aspx网页。
我目前正在使用rails进行编程,但是任何实现此功能的现有解决方案(或类似的东西)都会受到欢迎。
答案 0 :(得分:1)
在创建动态生成的查询时要小心,这些查询需要通过sp_executesql(例如:ms sql server)等执行.....确保覆盖所有基础,以确保您的应用程序不容易受到攻击对于SQL注入攻击,因为这种类型的开发实际上会遇到很多麻烦,如果它做错了。我建议将所有查询存储在一个表中,只读取该表中的查询以帮助隔离正在运行的查询你的申请。只需用标签识别它们,并允许EU从前端的下拉列表控件中选择标签。
祝你好运,我不确定任何有助于提供帮助的软件
答案 1 :(得分:0)
不太确定你的用例是什么,但我会说看看
Doctrine ORM(对象关系映射器)
**编辑 阅读更多,看看这个例子。我只会建议一个大型网站的Doctrine。
然后使用Doctrines DQL语法和表单的一些javascript / jquery魔法。
答案 2 :(得分:0)
请注意,您引用的查询不是任意的:它们位于特定问题域上,在一组特定的sql表上。
那就是说,如果我是你,我会研究人们如何使用javascript构建SQL查询。像这样的东西:
http://code.google.com/p/django-querybuilder/
http://thechangelog.com/post/4914956307/rel-arel-ported-to-node-js-with-some-changes
这至少可以让你对基础数据结构有所了解。