2012-12-18 34 views
0

我需要創建一個類似於Google日曆的服務(僅限基本功能)才能使用iCalendar格式查看和編輯/刪除約會。 開始之前我想問你,哪種數據庫最適合存儲這類信息。它必須是一個可擴展的解決方案。創建像Google日曆這樣的服務。什麼數據庫?

非常感謝你,如果你能幫助我。

+1

個人而言,我會去關係數據庫,因爲日曆和約會有一個固有的結構 - 但問題是非常主觀的 –

+0

這個問題是非常開放的。如果你有一個你想優化的特定數據庫特性,那將是一個更好的查詢方式。如果沒有,那麼任何數據庫都會做,選擇你喜歡的任何東西。 –

+0

謝謝,我只是想知道如果有人嘗試這些新的數據庫系統,除了從MySQL實現這一點,並有一些經驗:)。性能非常重要。 – zer02

回答

1

您可以安全地使用mysql,也許可以使用PDO。如果需要,這種方式永遠可以在未來移動到另一個數據庫。但是,對於這樣的任務,mySQL應該足夠一生了。

+0

謝謝,PDO是一個有趣的想法。我會研究這一點。 – zer02

1

如果你想要一個可伸縮的數據庫,你可以使用NoSQL數據庫(例如MongoDB,CouchDB爲例)。這種數據庫是可擴展的。

但是對於像「基本功能」一樣的「谷歌日曆」,經典的SQL數據庫(如MySQL的例子)也會足夠大。即使你有很多的用戶。

所以NoSQL或SQL數據庫很容易使用。所以最好使用你最喜歡的數據庫。

1

鑑於你的問題的範圍很廣,你可以使用任何關係數據庫,如:

  1. MySQL的
  2. Postgree
  3. SQL服務器
  4. 甲骨文

還是一個的NoSQL數據庫如:

  1. MongoDB的
  2. 烏鴉DB

你的選擇依賴於知識和經驗,這些數據庫。個人而言,我會用MySQL,因爲它穩定,開源,有很多關於它的資源(包括優化技巧),它是「免費的」。

0

詢問可伸縮性是錯誤的方法。如果您的服務增長,您根本無法知道您將遇到哪種可伸縮性問題。

您可以在幾乎任何數據庫解決方案中縮放一定數量的數據。但最終你將不得不採取完全不同的方法解決問題,因爲原始解決方案無法進一步擴展。

例如,在高性能環境中的MySQL用於安裝了足夠內存的服務器上,以至於某個時間點的整個數據集都保存在RAM中,而且硬盤僅寫入整個持續時間。硬盤,順便說一句,是一個非常快速的SSD陣列。

但即使這些泰坦服務器可能會變得太小,必須應用「分片」和「分區」等策略將數據集分割到多個數據庫服務器上。主從複製可能在讀寫時遇到困難。

如果你開始了,你的基本問題應該是:我想用什麼數據結構來向至少一個用戶提供服務?任何數據庫都可以支持這一點,但有些可能更易於使用,具體取決於數據結構和您對它們的瞭解。

如果您沒有服務,則沒有用戶,縮放需求也會減少。

+0

這是真的,但也許有更優雅的方式來保存日曆和約會。 – zer02

相關問題