2013-04-10 19 views
0

客戶希望能夠按月導入相當龐大的數據電子表格(至少對我來說)。目前它由大約200行和41列組成。構建包含許多列的數據庫表以用於電子表格導入;可能性縮放

前兩列是標識符(一個ID和一個位置的人類可讀名稱);接下來的39列都是數值。這些數字實際上是「評級」,可以分爲39類 - 但客戶只是暗示他們可能會在未來擴大這些類別。

我最初的想法是創建一個模擬電子表格的數據庫結構(所以,41列,本質上) - 但是隨着客戶想要在稍後添加它的潛力,我不知道這是否是最好的方法來解決這個問題。

我不是經過培訓的編碼員;我只是按照需要選擇了一些東西,所以解決方案越簡單越好。我曾考慮也許在每個位置的基礎序列化的關聯數組:

---------------------------------------------------------- 
ID  Name  Data       Date 
---------------------------------------------------------- 
1  Newport  {niceness:1, staff:6.5, etc.} Mar 13 
2  Stobart  {niceness:7, staff:3.1, etc.} Mar 13 
---------------------------------------------------------- 

...但我不知道這是最好的辦法,或者如果它必然工作,我設想的方式。這個想法是,如果March'13只有39個類別,但7月'13有42個類別,那麼數據庫結構將不會受到影響;只是存儲一個不同的關聯數組。

這種事情也可能會在導入表格時刪除列不匹配錯誤的可能性 - 例如,如果他們突然決定在沒有警告的情況下刪除某個類別,然後嘗試導入列簡稱的電子表格。值得注意的

事情:

我發展,這是一個WordPress插件,使數據庫表結構被寫在那裏,將是相當簡單的更新,由於WP的dbDelta功能。

我也希望使用馬特克魯斯的PHP ExcelReader,這在我最初的測試中似乎非常出色。

+0

如果客戶端不需要該表的統計信息,那麼帶有序列化數據的列應該沒問題。另一種方法是[實體屬性值模型](http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model) – bitWorking 2013-04-10 18:54:29

回答

3

我會拆分表到名稱,類別叫* names_categories *(或類似)

表名

---------------------------------------------------------- 
ID  Name  Date      
---------------------------------------------------------- 
1  Newport  Mar 13 
2  Stobart  Mar 13 

表分類鏈接表

---------------------------------------------------------- 
ID  Category          
---------------------------------------------------------- 
1  niceness 
2  staff  

個表names_categories(鏈接表)

---------------------------------------------------------- 
id_name id_category value       
---------------------------------------------------------- 
1   1   1 
1   2   6.5 
2   1   7 
2   2   3.1 

這會給你更多的靈活性。即使您的解決方案有效,它也不是那麼靈活,並且可能很難在未來維護數據庫。

+0

謝謝@bestprogrammerintheworld - 我喜歡這個,並考慮過類似的東西(基於WP自己的'meta'表格);然而,我不能100%確定如何可靠地將導入的電子表格數據轉換到鏈接表中,同時保留關聯性,而無需再進行列計數。問題在於(可預測地)有多少員工維護他們的電子表格,因此諸如更改列標題中的大小寫和拼寫錯誤等可能會產生影響。我需要**知道**第4欄是「不錯」,授予它關聯的正確ID。這很晚了 - 我有道理嗎? – indextwo 2013-04-10 19:54:48

+0

@indextwo - 爲什麼不將字段添加到categories-table中,您可以指定該類別屬於哪個列? – bestprogrammerintheworld 2013-04-10 20:12:12

+0

感謝你 - 這是一個好主意。然而,客戶已經指定了一些額外的要求,因爲這些問題使得這個問題沒有實際意義,所以我們需要看看不同的方法來整理數據。我已經接受了你的答案,因爲如果這樣做的話,我可能會這樣做。 – indextwo 2013-04-11 12:06:25

相關問題