gpt4 book ai didi

asp.net - 构建不需要用户了解 SQL 的自定义 SQL 查询工具 (ASP.NET)

转载 作者:行者123 更新时间:2023-12-02 13:50:31 27 4
gpt4 key购买 nike

希望我能就此获得一些架构建议。我被要求开发一个“自定义报告”模块,基本上可以使用户在不了解 SQL 的情况下查询数据库中的任何表。向我表达的想法是,用户应该能够使用类似英语的方式来说出他们想要什么表,需要显示哪些字段,他们想要的任何过滤,现在他们可能需要创建具有以下功能的查询:数据库中的外键关系。

我最初的想法是提供一个“向导”,让用户 1) 从下拉列表中选择一个表,2) 通过应用的自定义属性获取可用列的列表,并非所有列都被允许到特殊的“查询”类,以及 3) 使用下拉列表中类似英语的命名法添加各种过滤查询(例如“IS EQUAL TO”而不是“=”,“IS IN”而不是“IN ()”)。

但是,由于我需要能够知道,看起来很神奇,如果用户请求 x 数据,我必须将表连接在一起,我不知道如何正确构建它,或者即使它是可行的(管理似乎认为是...)。

对于解决此类问题有什么建议或建议吗?用户是要访问网站的外部客户,而不是内部客户,所以我不能只说“让他们使用 MS Access”或类似的内容,但我不能只做一个列名称转储或为他们提供一个大文本框输入 SQL 查询。我能想到的唯一方法是为数据提供特定的 View ,但这违背了模块的愿景(不必为客户想要的每个报告创建 View /过程)。

编辑请注意,我们没有使用报告服务; “报告”实际上只是一个表格 GridView,而不是 SSRS 报告。

最佳答案

无论你做什么,都不要让他们查询生产数据库。他们必然会运行一些可怕的表扫描,这会破坏应用程序的性能。

只需告诉管理层,即使是数据库 OEM 也没有想出一种方法让最终用户轻松地从数据库获取数据。你最好的选择是使用SQL Server Analysis Services 。这确实是最终用户查找自己数据的最佳方式(迄今为止)。

关于asp.net - 构建不需要用户了解 SQL 的自定义 SQL 查询工具 (ASP.NET),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5423537/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com