2013-12-14 49 views
0

作爲一個更大項目的一部分,我構建了一個分析業務數據的報告應用程序。目標是具有默認數據集,並允許用戶上傳他們自己的數據集。將自定義用戶數據上傳到數據庫中

我在PHP中構建這個,但我不確定什麼是最好的數據庫使用。 MySQL非常好,通常是我的第一個選擇,但這是應用程序並不需要關係數據庫的數據集。數據集可以是數千列和數百萬行。獲得這個工作MySql是一個相當大的挑戰。

我已經看到HDF5這似乎是一個很好的數據庫,但從Web應用程序的角度來看,它並不是很好的支持。

對於可以存儲如此大型數據集的數據庫您有任何其他建議嗎?

P.S - 我應該澄清標題的原因....我需要能夠允許用戶上傳數據集。使用MySQL的唯一方法是每次用戶上傳數據集時都可以創建表格。聽起來不太好。

+0

看看MongoDB它是NoSQL數據庫,也許你正在尋找 – Jompper

+0

感謝您的評論。在進一步研究NoSQL數據庫之後,我還沒有真正使用它,它可能看起來像是一個好的方法,儘管我可能會使用Cassandra。這個數據庫可以存儲超過20億列。謝謝(並隨時提交作爲答案) – user1641165

回答

0

你應該看看NoSQL數據庫。這聽起來像你在找什麼。使用NoSQL,您不必創建數據庫,但可以存儲任何仍然能夠快速搜索數據的數據。

+0

哇:) :)這是驚人的東西....可惜它不是共享主機上可用 – user1641165

0

如果我理解正確的話,你需要在那裏建立一個子表(或與此類似),並存儲自定義字段:

表名:custom_fields

+---------+----------------+----------+ 
| user_id | field name  | value | 
+---------+----------------+----------+ 
|  10 | favorite_sport | hockey | 
|  10 | favorite_food | hot-dogs | 
|  20 | sisters_name | Ashley | 
+---------+----------------+----------+ 

而且在此之後,只需將數據加入一起並顯示您的需求即可。

+0

然後還需要包括一個行ID。平均數據集是2000 x 50,000個單元格。每當用戶查看該表並且仍然對其進行查詢時,這將具有很大的處理能力來重建。考慮到速度不會有更好的解決方案? – user1641165

+0

那麼,如果你想要一個用戶能夠使用自定義字段,那麼它將始終是大量的數據+考慮選項。用戶還可以創建一個名爲'مجالعملي'的字段,這可能會讓您的網站變得非常糟糕。所以重新考慮一下,如果你真的想要這樣做。如果你這樣做,那麼我的建議可能是最好的。但是,嘿,總是有更好的解決方案:) – Peon

相關問題