Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我如何帮助需要CSV格式的关系数据库数据的人?_Sql_Relational Database - Fatal编程技术网

Sql 我如何帮助需要CSV格式的关系数据库数据的人?

Sql 我如何帮助需要CSV格式的关系数据库数据的人?,sql,relational-database,Sql,Relational Database,非技术人员会问:“你能帮我把数据库放在Excel电子表格中吗?”这是一个很常见的比喻。(我可以发誓有一个xkcd,但我找不到它。)我们经常让客户在CSV中查询他们的所有数据 说这个人是非技术性的是多余的,所以我需要以一种非技术性的、友好的、不居高临下的方式向他们解释,Excel并不是为了表示一对多的关系而设计的(不会让他们产生一对多的想法) 如果你有过与非技术人员合作的特定策略的个人经验,我肯定很想听听 编辑:似乎大多数答案都倾向于质疑请求者的意图。这本身就是一件很难做好的事情。有些答案倾向于向

非技术人员会问:“你能帮我把数据库放在Excel电子表格中吗?”这是一个很常见的比喻。(我可以发誓有一个
xkcd
,但我找不到它。)我们经常让客户在CSV中查询他们的所有数据

说这个人是非技术性的是多余的,所以我需要以一种非技术性的、友好的、不居高临下的方式向他们解释,Excel并不是为了表示一对多的关系而设计的(不会让他们产生一对多的想法)

如果你有过与非技术人员合作的特定策略的个人经验,我肯定很想听听

编辑:似乎大多数答案都倾向于质疑请求者的意图。这本身就是一件很难做好的事情。有些答案倾向于向某人扔数据,然后告诉他们走开。这不是我想要的。我想帮助这个人,而不是让他们离开。这就是我想说的

因此,问题分为两部分: 如果客户(即我想要满足其需求的人)请求CSV数据以进行a.)备份,或b.)从系统中获取信息,我该如何告诉他们


因为这里没有确切的正确答案,所以欢迎有根据的答案。

经理在想要某样东西时可以含糊其辞,我怀疑他/她想要的不是“所有销售人员的东西”,而是从中获得特定的观点。
您需要澄清数据的用途,并为他们提供他们需要的,而不是他们要求的。

要求CSV格式的关系数据没有什么错。您可以选择将每个表转储到一个用逗号分隔的文本文件中,也可以选择稍微友好一点,将一对一的数据合并到一个CSV文件中。一对多的关系显然更加棘手

我建议你和这些家伙谈谈,问问他们想通过这样做解决什么问题。显然,他们想创建一些电子表格,但没有意识到,通过CSV路线,他们将无法处理随后的模式更改等。与“客户”交谈后,您可能会同意正确的路径。而且,这可能只是为一次性交易创建一个CSV文件


我曾与一些非技术人员一起工作,他们对Excel的使用非常出色。

如果我有时间,我通常会详细询问他们想要什么。如果我没发现什么大问题,我就去做。毕竟我不想再去猜测他们。正如书中所说

如果你看任何活动,过程, 还是纪律离得远远的呢 看起来很简单。没有 发展的经验想什么 程序员所做的是简单的和 没有编程经验的程序员 管理层对什么有同样的看法 经理们会这样做。


所以,如果你不知道他们为什么需要它,试着给他们想要的最好的解释

每个表给他们一张工作表,所有工作表都在同一工作簿中,与存储的工作表完全相同。他们很快就会明白为什么他们需要坚持使用这些报告,或者如何获得他们真正需要的数据。

几乎可以肯定,一份特定的报告或清单将解决他们需要的问题


要么从整体总结的角度编一个并展示出来,然后开始讨论他们真正想要的是什么,或者只是开始讨论——这更难,因为大多数非技术人员可以在存在的东西上向你展示他们不喜欢的东西,而不是在一张白纸上描述他们喜欢的东西。

一个简单的向下钻取报告,对你来说很容易创建,可能是好的。就像Ruby on Rails如何创建一个简单的CRUD应用程序一样,应该存在类似的工具,只需单击几下,然后您就会得到一个基于web的深入报告。

请他们向您发送一个空白的电子表格,其中包含他们想要的列标题,并告诉他们您将填写该表格

当空白电子表格出现时,有两件事是正确的:

  • 您将很容易满足项目的要求(例如,不必费解如何找出5个电话号码中的哪一个是Phone1和Phone2)

  • 你会有一些问题(例如“我每个人有0到25个电话号码。你想让我如何选择哪一个是电话1,哪一个是电话2?你想让我用额外的电话做什么?”


  • 如果第二个是真的,客户将能够向您提供答案,或者他们将意识到在以电子表格形式表示他们想要的数据时存在真正的问题,并希望在规划下一步时寻求您的帮助。

    您别无选择,只能这样做。 我做了很多实现,每次客户要求从excel导出/导入时。 事实上,如果应用程序不提供这种功能,他们不会认真对待你。他们会去其他地方。因此,你所需要做的就是接受事实并解决它


    导出到excel很棘手,不幸的是,Microsoft(SSIS)提供的解决方案给出了有趣的结果,并且缺少格式选项。但是这是可能的(我们所有的应用程序都能正确地使用excel)

    这是一个相对较老的问题,因此我觉得再添加一个答案是合适的,该答案反映了问题提出时无法使用的选项。下面是一种导出到Excel的方法,同时充分表达您导出的数据的关系性质:

    • 首先,将数据库中与工作簿中的工作表对应的每个表(包括第一行中的列标题)的关系数据导出到Excel
    • 将这些数据表转换为Excel中的命名表(最简单的方法就是选择Format as Table)
    • 使用名称管理器将表名称编辑为wha