面对我所支持的LOB的每个版本都不可能获得所请求的所有特性的情况下,我已经开发了一些用户拥有并发送给我的SQL查询模板,然后执行这些模板。
这就导致了一个受密码保护的SQL执行对话框,具有写访问权限的用户可以自己执行,但有一种理解,即如果输入错误,可能会造成损害。虽然这让我感到紧张,但在这种情况下,拥有功能的好处超过了风险。
此外,人们看待功能的方式也发生了变化。当他们更多地了解数据库是如何工作的时,这似乎就不那么神奇了。然而,另一方面,新用户可能会走进一种文化,在这种文化中,语言包含了对他们来说完全陌生的东西。
对这个方向的天气有什么建议吗?
发布于 2012-05-05 02:21:50
尽快决定一套报告软件。(例如,SQL server报表服务)
让您的用户告诉您他们经常需要的查询和参数,并从这些查询和参数中实际生成可重复的报告。如果您的一些用户已经很好地掌握了SQL,请考虑为他们建立一个开发数据库,以便对其进行报告。
我在一家没有报告套件的公司工作,但是我对报告有很大的需求,而且这是一个巨大的混乱。任何规模合理的企业都会有每月/每周的报告。
试图将它们自己构建到您的应用程序中(当您有一个非常重要的报告,您必须为用户构建)成为一场噩梦。后来就变成了维护噩梦。如果你问我的话,如果你不买一套报告,但是有很多报告的话,就意味着要承担技术债务。你最终会写太多的样板,你可以买到现成的东西,或者你正在做一些冒险的事情,比如让你的用户执行SQL。
让您的用户运行他们自己的查询是在问问题。死锁是首先想到的事情。
发布于 2012-05-05 03:51:03
您可以从有限的sql知识开始,但是您可能需要为它们做一些繁重的工作。我曾在许多公司工作过,这些公司为内部和第三方应用程序建立了数据库。提供了正式培训。在用户准备好之前,不要授权他们。
以下是一些需要考虑的事项:
从少量可用字段开始。如果你把它留给他们,他们会想要所有的,因为他们觉得如果今天他们不给出500个字段的列表,那么处理新字段的请求将花费太长的时间。
浏览您的数据库知识或与DBA一起工作,DBA可以帮助调整这些查询所使用的资源的数量。同样,要严格,但让用户知道,您可以快速处理这个系统的新请求比以前更快,所以没有必要要求所有的东西在一次。
发布于 2012-05-05 03:00:39
这取决于文化。
让用户熟练地掌握SQL是有好处的。但如果他们半途而废,他们也会得到误导的结果。你必须真正理解他们到底想要什么。
永远不要给用户伤害公司的能力。
如果要这样做,可以设置订阅生产数据库的报表服务器。或者,您可以设置一些视图,并且只允许它们访问它们。
在任何一种情况下,您都可以对数据进行建模以使其更易于使用。例如,创建月、年、日列,而不是仅创建日期列。去Denmoormalize数据以消除连接的需要。等等,然后才是。
https://softwareengineering.stackexchange.com/questions/147356
复制相似问题