跨多个数据库表的通用搜索接口

时间:2015-09-22 03:49:16

标签: sql sql-server search nhibernate reporting

多年来,我们一直在手动编写大型SQL查询以满足业务用户的需求:

  

“给我所有住在佛蒙特州的客户,不是公司的   客户(不同的表,排他性),没有产品x   (不同的表,排他性),在最后的x中付了钱   几个月(不同的桌子,包括),并在周二和周二喝茶   星期四(等)。“

我们每天都在做这项工作,而且往往会采用非常相似的标准进行轻微调整,不幸的是,这既繁琐又容易出错。我真的想将这项工作卸载到通用查询/搜索界面,以便与需要数据的业务用户进行协商。

麻烦的是,我们有数百个表可以返回到我们的客户表中,从零到1或零到多个关系,所以即使我们正在谈论获得顶级关系,单个视图也会非常庞大​​和缓慢所有可能标准的50%。

我最初的想法是查看不同的报告引擎,但这似乎没有帮助。下一个想法是创建某种非规范化结构,松散地基于json,然后我们可以基本上设置一个分面搜索,但这似乎也不可行。

是否存在某种程序,您可以在数据库之上配置这些程序,这些程序将基于fks和what?或者如果没有,有没有办法设置像entity / nhibernate / what这样的方式,它可以发出所需的复杂连接集,以获得最终用户需要的东西,这样我们基本上可以设置映射并让界面根据复选标记和下拉列表构建查询?我希望能够通过配置轻松添加新标准,而不是更新代码。

我几个星期以来一直在寻找解决方案,似乎无法找到合适的答案,也不知道还能在哪里问。

0 个答案:

没有答案