2014-04-28 72 views
-1

我需要您的幫助來解決關於數據存儲的功能問題。如何存儲表格數據

我在一個項目中,用戶可以在服務器上保存一種Excel表格。表格的大小不固定。

什麼是存儲表的最佳解決方案?作爲一個數組存儲爲MySql數據庫中的文本?使用MongoDB或其他NoSQL解決方案?

有關信息,表格中不會執行搜索功能。

非常感謝!

編輯:我想補充數據表的兩個例子:

例1:每季度的銷售額每推銷員

  Sven Kenneth 
2013.Q1  1200 4500 
2013.Q2  1350 900 
2013.Q3  2487 784 
2013.Q4  4570 4512 
2014.Q1  4785 3451 

例2:每個月重一對夫婦和他們的孩子

 Him Her Children 
Jan 70.5 52.1 45.1 
Feb 71.8 52.7 46.1 
Mar 70.8 52.7 46.0 
Apr 70.1 51.9 46.1 

這兩個例子的行數和列數是不一樣的,並且可能隨時間而變化:下一季度,公司可以聘請新的銷售人員。

如何存儲這些數據?請注意,用戶永遠不會在這些標籤上搜索。

我希望這更清楚。

+0

你能否提供更多信息「那種excel表」?它是所有用戶的同一張表還是他們自定義的?每個表中將有多少數據?你需要什麼數據? – Martin

+0

謝謝你的時間。每個用戶可以創建幾個新的標籤。這些表格通常是數據表格,您可以使用excel創建。關於數據大小,大概不超過幾百行和十列,大約。我使用這些數據來生成圖表。 – DescampsAu

+1

這太寬泛了。您應該發佈一些示例數據並縮小問題範圍。 – joao

回答

2

爲了解決

這兩個例子的行和列的數量是不一樣的,可以隨時間變化:下一季度,公司可以聘請一個新的推銷員。

回到昔日在這裏我們使用的關係表,我們將它分解在兩個表

period | salesman | sales 
2013.Q1 Sven  1200  
2013.Q2 Sven  1350  
2013.Q3 Sven  2487  
2013.Q4 Sven  4570  
2014.Q1 Sven  4785 
2013.Q1 Kenneth 4500 
2013.Q2 Kenneth 900 
2013.Q3 Kenneth 784 
2013.Q4 Kenneth 4512 
2014.Q1 Kenneth 3451 

salesman | id 
Sven L  Sven 
Kenneth W Kenneth 

這不歸高達5正常形式,但它會做。

你可以使用Cassandra或Mongo,Cassandra你可以使用超級列族,允許你在飛行中創建列和MongoDb它不是一個剛性的結構,你只保存json對象,你可以像這樣只保存宿舍:

{ 
"quarter" : "2013.Q1", 
"salespeople" : [ 
    {"salesman": "Sven", "sales" : 1200}, 
    {"salesman": "Kenneth", "sales" : 4500} 
] 
} 

明年

{ 
"quarter" : "2014.Q1", 
"salespeople" : [ 
    {"salesman": "Sven", "sales" : 1200}, 
    {"salesman": "Kenneth", "sales" : 4500}, 
    {"salesman": "Somebodyelse", "sales" : 100000} 
] 
} 

你可以做兩種方式,但關係的方式是如此容易得多

+0

謝謝!關係模型可以工作,但也許用戶會創建一個表來顯示銷售時,另一個將創建表來顯示重量等。我有想法使用MongoDb,但我不知道它是相關的。感謝您確認我的想法。 額外的問題:你的意思是說:「這不是歸一化到第五範式,但它可以。」 – DescampsAu

+1

在第一張表旁邊可以添加新的銷售權重。所以在數據庫中存在數據庫規範化,你可以閱讀更多的https://en.wikipedia.org/wiki/Database_normalization –

0

我沒有找到明確的答案,但我會解釋我會做什麼。

我將簡單地將結果存儲爲一個二維數組。