首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >鼓励用户学习SQL以及执行SQL的能力有什么用?

鼓励用户学习SQL以及执行SQL的能力有什么用?
EN

Software Engineering用户
提问于 2012-05-05 00:06:09
回答 4查看 223关注 0票数 3

面对我所支持的LOB的每个版本都不可能获得所请求的所有特性的情况下,我已经开发了一些用户拥有并发送给我的SQL查询模板,然后执行这些模板。

这就导致了一个受密码保护的SQL执行对话框,具有写访问权限的用户可以自己执行,但有一种理解,即如果输入错误,可能会造成损害。虽然这让我感到紧张,但在这种情况下,拥有功能的好处超过了风险。

此外,人们看待功能的方式也发生了变化。当他们更多地了解数据库是如何工作的时,这似乎就不那么神奇了。然而,另一方面,新用户可能会走进一种文化,在这种文化中,语言包含了对他们来说完全陌生的东西。

对这个方向的天气有什么建议吗?

EN

回答 4

Software Engineering用户

发布于 2012-05-05 02:21:50

尽快决定一套报告软件。(例如,SQL server报表服务)

让您的用户告诉您他们经常需要的查询和参数,并从这些查询和参数中实际生成可重复的报告。如果您的一些用户已经很好地掌握了SQL,请考虑为他们建立一个开发数据库,以便对其进行报告。

我在一家没有报告套件的公司工作,但是我对报告有很大的需求,而且这是一个巨大的混乱。任何规模合理的企业都会有每月/每周的报告。

试图将它们自己构建到您的应用程序中(当您有一个非常重要的报告,您必须为用户构建)成为一场噩梦。后来就变成了维护噩梦。如果你问我的话,如果你不买一套报告,但是有很多报告的话,就意味着要承担技术债务。你最终会写太多的样板,你可以买到现成的东西,或者你正在做一些冒险的事情,比如让你的用户执行SQL。

让您的用户运行他们自己的查询是在问问题。死锁是首先想到的事情。

票数 4
EN

Software Engineering用户

发布于 2012-05-05 03:51:03

您可以从有限的sql知识开始,但是您可能需要为它们做一些繁重的工作。我曾在许多公司工作过,这些公司为内部和第三方应用程序建立了数据库。提供了正式培训。在用户准备好之前,不要授权他们。

以下是一些需要考虑的事项:

  1. 如果可能,创建数据库的报告版本,而不是使用生产事务数据库。讨论数据需要有多及时。可能很少有自定义查询依赖于分钟数据。一台虚拟服务器一旦被炸毁就可以重新定位,这是非常方便的。
  2. 不允许直接访问表。创建一些视图或任何适合用户的数据库对象。注意任何复杂的连接,并尽量使用某种类型的参数来限制检索的数据量。
  3. 使访问只读。
  4. 使用报告编写工具。他们的大部分需求将是用不同的过滤器和排序将不同级别的数据聚合到由您的业务确定的数据中。

从少量可用字段开始。如果你把它留给他们,他们会想要所有的,因为他们觉得如果今天他们不给出500个字段的列表,那么处理新字段的请求将花费太长的时间。

浏览您的数据库知识或与DBA一起工作,DBA可以帮助调整这些查询所使用的资源的数量。同样,要严格,但让用户知道,您可以快速处理这个系统的新请求比以前更快,所以没有必要要求所有的东西在一次。

票数 2
EN

Software Engineering用户

发布于 2012-05-05 03:00:39

这取决于文化。

让用户熟练地掌握SQL是有好处的。但如果他们半途而废,他们也会得到误导的结果。你必须真正理解他们到底想要什么。

永远不要给用户伤害公司的能力。

如果要这样做,可以设置订阅生产数据库的报表服务器。或者,您可以设置一些视图,并且只允许它们访问它们。

在任何一种情况下,您都可以对数据进行建模以使其更易于使用。例如,创建月、年、日列,而不是仅创建日期列。去Denmoormalize数据以消除连接的需要。等等,然后才是。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/147356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档