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

时间:2010-10-01 14:44:28

标签: sql relational-database

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

说这个人是非技术人员是多余的,所以我需要以非技术性,友好,非居高临下的方式向他们解释,Excel不是为了代表一对多的关系而设计的(没有制作它们)理解一对多的想法。

如果您有过与非技术人员一起为您工作的特定策略的个人经验,我肯定希望听到它。

编辑:似乎大多数答案倾向于质疑请求者的意图。这本身就很难做到。一些答案倾向于向一个人扔数据并告诉他们离开。那不是我要去的地方。我希望帮助这个人,而不是让他们离开。这就是我想要到达的地方。

所以,两部分问题: 我告诉客户(即,我想要满足其需求的人)请求他们的数据的CSV用于。)备份,或b。)从系统中获取信息。

由于这里没有确切的正确答案,欢迎提供经过证实的答案。

9 个答案:

答案 0 :(得分:31)

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

当空白电子表格出现时,其中一件事情是真的:

  1. 您很容易就能满足项目的要求(例如,不知道如何弄清楚Phone1和Phone2中的5个电话号码中的哪一个。)

  2. 您会遇到一些问题(例如“我每人有0到25个电话号码。您希望我选择哪个是Phone1和哪个Phone2?您希望我做什么?任何额外的东西?)。

  3. 如果第二种情况属实,客户将能够为您提供答案,或者他们会发现存在真正的问题,以电子表格形式表示他们想要的数据,并希望在规划下一个时请求您帮助向前迈进。

答案 1 :(得分:12)

管理人员在他们想要的时候可以模糊不清,我怀疑,而不是“所有Salesforce的东西”,他/她只是希望得到一个特定的观点。 您需要澄清数据的用途并为他们提供他们需要的内容而不是他们要求的内容。

答案 2 :(得分:9)

以CSV格式请求关系数据没有任何问题。您可以选择将每个表转储到用逗号分隔的文本文件中,或者更好一点,并将一对一数据加入单个CSV文件中。一对多的关系显然比较棘手。

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

我亲自与一些非常出色的非技术人员合作过。

答案 3 :(得分:4)

如果我有时间,我通常会详细问他们想要什么。如果我没有看到任何大问题,我会这样做。毕竟我不想再次猜测它们。正如它在this post

中所说的那样
  

如果你看看任何活动,过程,   或远离它的纪律   看起来很简单经理没有   发展经验思考什么   程序员做的很简单和   没有经验的程序员   管理层认为是一样的   经理们。

因此,如果您不知道为什么他们可能需要它,请尝试尽可能地向他们提供他们想要的解释。

答案 4 :(得分:3)

为每个表提供一个工作表,所有工作表都在同一个工作簿中,与存储的完全相同。他们很快就会发现为什么他们需要坚持报告或者如何询问他们真正需要的数据。

答案 5 :(得分:2)

这是一个相对陈旧的问题,因此我觉得再添加一个答案可以反映在提出问题时无法提供的选项。以下是一种导出到Excel的方法,同时充分表达了要导出的数据的关系特性:

  • 首先将关系数据导出到Excel,每个表的数据库对应于工作簿中的工作表,包括第一行中的列标题。
  • 将这些数据表中的每一个转换为Excel中的命名表(最简单的方法就是选择Format as Table)。
  • 使用名称管理器将您的表名编辑为您想要的名称
  • 对于每个命名的“表格”,选择PowerPivot功能区上的添加到数据模型
  • 在PowerPivot功能区上选择“管理”,然后选择“图表视图”以查看数据模型中的表格
  • 连接表以建立与SQL Server数据库关系图中的关系类似的关系
  • 如果您有复合键,则可以创建计算列作为代理键,因为PowerPivot数据模型不支持使用多列的键

此时,关系模型在Excel中完全呈现,可以创建数据透视表,甚至可以创建利用数据和关系的仪表板样式PowerView报表。虽然我同意在满足客户期望方面接受的答案,但当客户确实需要通过维护关系导出数据时,这种方法是一种可能的答案。

答案 6 :(得分:0)

几乎可以肯定是一个特定的报告或列表,可以解决所要求的问题。

要么从整体摘要角度提出并展示它,然后开始讨论他们真正想要的东西,要么开始讨论 - 这更难,因为大多数非技术人员可以向你展示他们所做的事情喜欢在比空白纸上描述他们喜欢的东西更容易存在的东西。

答案 7 :(得分:0)

您可以轻松创建一个简单的向下钻取报告。就像Ruby on Rails创建一个简单的CRUD应用程序一样,只需点击几下就可以存在类似的工具,然后就可以获得基于Web的深入报告。

答案 8 :(得分:0)

你别无选择。 我做了很多实现,每次客户都要求从excel导出/导入。 事实上,如果应用程序不提供此类功能,他们不会认真对待您。他们会去别的地方。所以你需要做的就是接受这个事实并进行整理。

导出到excel是棘手的,不幸的是,微软(SSIS)提供的解决方案给出了有趣的结果,缺乏格式化选项。但是有可能(我们所有的应用程序都能正常使用Excel)