2010-10-01 17 views
15

非技術人員問:「你能把數據庫放在Excel電子表格中嗎?」是如此普遍,它幾乎是一個比喻。 (我可以發誓說有關於此的xkcd,但我找不到它。)我們經常讓客戶以CSV格式索要所有數據。如何以CSV格式幫助想要關係數據庫數據的人?

要說這個人是非技術性的是多餘的,所以我需要用一種非技術性的,友好的,不屈不撓的方式向他們解釋,Excel並不是用來代表一對多關係的他們崇尚一對多的想法)。

如果您有一個特定的戰略,爲您工作與非技術人員的個人經驗,我一定會聽到它。

編輯:它似乎像大多數的答案傾向於質疑請求者的意圖。這本身就是一件很難做到的事情。其中一些答案傾向於向某人投擲數據並告訴他們離開。這不是我要去的地方。我期待幫助這個人,而不是讓他們離開。這就是我想要到達的地方。

因此,兩部分問題: 如果我告訴某個客戶(即需要我滿足的人)爲某個備份請求其數據的CSV,或b。)從系統。

由於這裏沒有確切的正確答案,所以我們歡迎有根據的答案。

+9

那麼,他們想要什麼?如果他們想要一個完整的轉儲,那麼是的,一個CSV是愚蠢的。如果像往常一樣,他們想要一個扁平化的報告,那麼Excel或CSV就非常合適。 – 2010-10-01 14:47:02

+7

爲什麼不這樣做?他們可能不關心他們是否重複某些列的數據。 – 2010-10-01 14:47:32

+0

給他們一個SQL插入命令的轉儲轉儲,他們會不好意思承認他們不知道如何處理它。 :) – 2010-10-01 14:52:54

回答

28

請他們送你一個空電子表格的列標題爲他們想要的東西,並告訴他們你會填補它在

當空白電子自帶的兩兩件事之一將是真實的。

  1. 你很容易就能夠滿足項目的要求(例如,不知道如何弄清5個電話號碼中的哪一個是Phone1和Phone2)。

  2. 您將會遇到一些問題(例如「每個人有0到25個電話號碼,您希望我選擇哪個Phone1和哪個Phone2?您希望我怎麼做演員?)。

如果第二次,客戶端或者是將能爲你提供答案,或者他們會認識到有代表以電子表格形式他們想要的數據真實存在的問題,並希望是真的,要求在規劃下一步的發展你的幫助。

+4

這是一個好主意。他們要麼自己發現問題,要麼重新解釋請求。 – Segfault 2010-10-01 16:24:55

+0

謝謝Segfault。我無法告訴你我有多少時間需要處理這個要求。順便說一下,大約一半的時間,一旦客戶更準確地指出問題(在空白電子表格中),我發現請求很容易滿足,而無需返回更多信息。 – 2010-10-01 21:28:27

+0

簡單而輝煌。 – 2010-10-06 14:58:31

12

經理可以在他們想要的東西時變得模糊,我懷疑他們只是想從中獲得特定的觀點而不是「所有Salesforce的東西」。 你需要弄清楚數據是什麼,給他們他們需要什麼,而不是他們要求什麼。

9

以CSV格式詢問關係數據沒有任何問題。您可以選擇僅將每個表格轉儲到以逗號分隔的文本文件中,或者稍微好一些,並將一對一數據合併到一個CSV文件中。一對多的關係顯然更棘手。

我建議與他們交談並詢問他們想要解決什麼問題。顯然,他們想要創建一些電子表格,但是沒有意識到通過使用CSV路由他們將無法處理後續的模式更改等。在與您的「客戶」交談之後,您可能會同意正確的路徑。而且,這可能會創建一個CSV文件,以實現一次性交易。

我已經親自與一些非常科技的人一起工作,他們使用Excel很棒。

+1

這個。 CSV完全有能力表達每個關係。支持多個頁面的電子表格可以表示具有多個關係的整個數據庫。以這種格式處理數據是困難的,但聰明的非技術人員可以用它做簡單的事情。 – dmckee 2010-10-01 17:18:21

+0

不*完美*能力。你如何在CSV中表示一個'BLOB'?或者區分'NULL'和''''? – dan04 2010-10-01 18:38:51

+0

@ dan04:這些是序列化程序的問題。例如,你可以使用uuencode blob。 null問題更難,因爲沒有完全自然的解決方案,但是如果它必須完成,它就可以完成。 – dmckee 2010-10-01 18:47:54

4

如果我有時間,我通常會詳細詢問他們想要什麼。如果我沒有看到任何大問題,我就這樣做。畢竟我不想再次猜測它們。由於它在this post

說,如果你看一下任何活動,過程, 或學科從足夠遠,它 看起來很簡單。沒有 開發經驗的經理認爲程序員做什麼 是簡單的和 沒有經驗的程序員 管理層認爲 管理者所做的一樣。

所以,如果你不知道他們爲什麼需要它,試着給他們他們想要的最好的解釋。

+0

這是一位顧客,而不是經理。對不起,我首先談論經理人,然後問一個關於客戶溝通的問題,讓人們困惑不解。兩件完全不同的事情。 – 2010-10-01 16:12:18

3

給他們每個表一個工作表,都在同一工作簿,正是因爲它的存儲。他們會很快弄清楚爲什麼他們需要堅持報告或如何索要他們真正需要的數據。

0

那麼幾乎可以肯定,這將解決問什麼特定報告或上市。

要麼從整體總結的角度出發,展示它,然後開始討論他們真正想要的東西,或者開始討論 - 這很難,因爲大多數非技術人員都可以告訴你他們是什麼不喜歡那些比在一張白紙上描述他們喜歡的東西更容易存在的東西。

0

一個簡單的深入報表中,這是很容易爲你創造可能是很好的。就像Ruby on Rails如何創建一個簡單的CRUD應用程序一樣,只需點擊幾下鼠標就可以找到類似的工具,然後您就可以獲得一個基於Web的向下鑽取報告。

0

你沒有其他選擇,但做到這一點。 我做了很多實現,每次客戶都要求從excel中導出/導入。事實上,如果應用程序不提供這種功能,他們不會認真對待你。他們會去別的地方。所以你所需要做的就是接受這個事實並將其整理出來。

導出到Excel是微軟(SSIS)提供棘手的,不幸的解決方案給滑稽的結果,缺乏格式選項。然而,它是可能的(我們所有的應用程序與Excel正常工作)

2

這是一個比較老的問題,所以我覺得適當多加一個答案,反映了一些用不到的時候有人問選項。這裏是導出到Excel同時充分表達要導出數據的關係性質的方法:

  • 開始通過關係數據導出到Excel每個表格數據庫對應的工作簿中的一個表,包括列標題在第一行。
  • 將這些數據表中的每一個轉換爲Excel中的指定表格(最簡單的方法是將格式選擇爲表格)。
  • 使用名稱管理器來編輯你的表名是你想打電話給他們
  • 對於每一個命名爲「表」,選擇添加到數據模型上的PowerPivot功能區
  • 選擇上的PowerPivot功能區管理,然後什麼選擇圖表視圖以查看數據模型中的表格
  • 連接這些表以建立它們與您在SQL Server數據庫關係圖中的關係類似的關係
  • 如果您有複合鍵,則可以創建計算列作爲代理鍵,因爲PowerPivot數據模型不支持使用多列的鍵

此時,關係模型在Excel中完全表示,並且可以創建數據透視表和甚至是利用數據和關係的儀表板樣式PowerView報表。雖然我同意在滿足客戶期望方面所接受的答案,但當客戶確實需要與維護的關係一起導出的數據時,這種方法是一個可能的答案。