2012-12-13 71 views
1

我正在創建一個非常簡單的網站,您可以在其中註冊鍛鍊,以便其他人可以看到它並發表評論。在Mysql上存儲大量表單信息的最佳方式是什麼?

問題是,例如,如果你每週訓練6天,並做10個練習,我將不得不在Mysql上存儲60個練習。

我正在考慮創建一個60行的表格,然後我將所有的信息存儲在那裏,但由於某種原因,這似乎並不是最好的方式。

那我該怎麼辦?我在Stack Overflow看這裏,我看到了一些關於使用數組來存儲和使用PHP序列化的內容,但我並不確定。

+3

您是否曾計劃向除您以外的用戶提供網站?如果是這樣,它將會超過60條記錄,而MySQL則是要走的路。而不是閱讀StackOverflow,閱讀PHP教程。 StackOverflow不是一個。 –

+0

同意其他評論。此外,如果您將其存儲在自己的行中,則可以創建更多搜索和報告選項。否則,如果您將所有數據序列化爲單個字段,那麼您只能存儲10行,但不能真正搜索或索引數據。 – Twisty

+0

如果它是微不足道的而且非常小,那麼我會使用一個簡單的json文件以json格式存儲數據。 – elclanrs

回答

4

在擔心這類問題之前,您應該考慮數據庫是什麼。 mysql處理數百萬個條目是很常見的。在正常情況下你不可能超過這個。如果您確實獲得了大量流量,並且您的數據庫增長到了擴展和升級有意義的地步,那麼您可以參考。現在,MySQL將成爲你的冠軍。

序列化有它的用處,但是當你想單獨檢查結果時,你會想要使用關係設計。這樣,您可以將每一點信息存儲在特定的鍛鍊會話中,併爲用戶提供更好的統計信息。畢竟,統計是上癮的。本網站上的許多用戶不斷回來構建統計信息。

我讀到你的問題的方式是,你認爲單獨存儲60次鍛鍊是很多數據。你有一個包含很多字段的表單,並且你想知道如何將這些字段以一種合理的方式存儲在數據庫中。不只是爲了你,而是爲了任何進入和註冊的人。對於任何數據庫來說,這仍然是一個相對較小的任務。關係設計絕對是兩種方式之一。

+0

謝謝Kai,這正是我要做的! –

2

您應該首先從邏輯上決定要存儲什麼,而不是如何存儲它們。

一旦你知道要存儲什麼,那麼你應該規範化數據以刪除冗餘數據。這通常通過將數據轉換爲3nf來完成。請參閱http://en.m.wikipedia.org/wiki/Database_normalization

通過這種方式,您可以確保捕獲所有需要的數據。

1

我建議你在任何情況下使用數據庫aimply,因爲你是「存儲」數據。 Array serializzation並不是真的存儲數據,它更多的是存儲一段過程以備後用。

隨着數據庫你可以做更多的事情,你現在可能沒有幻想,但如果有一天你會有一個新的計劃,使用你收集的數據,你將有更多的擴展空間。

相關問題