2011-08-03 62 views
3

我正在尋找一個用於小型項目的數據庫系統。我理想中的數據庫將具有以下特徵/要求:適合輕量級架構靈活性問題的良好數據庫系統

  • 靈活的模式:我有可能缺少的屬性的元組,和其他人可能還沒有被整個數據庫
  • 便捷的前共享的特殊屬性 - 結束:此數據庫將成爲非技術型用戶輸入數據,詢問查詢等(最可能基於Web的前端)的一部分。所以適當的插件與PHP將是方便的。
  • 查詢表達性:我有一個相反的規模問題 - 數據庫永遠不會變得非常大(每年想象一個類似50個新元組的東西),所以我不需要很花哨的東西。我只想說承認相當複雜的查詢(這就是爲什麼電子表格不會做)

我看着平時的NoSQL系統,如MongoDB的和CouchDB的一個系統,而他們肯定可以工作,他們似乎像我的相對小的問題矯枉過正。我想知道是否有更簡單的東西可以使用。

+0

SQL已經被用來解決最適合自己的「靈活模式」的定義很長一段時間,特別是在你的尺度問題。是什麼讓你覺得你需要另一種技術?是否因爲非技術型用戶需要經常更改模式,因此您需要隱式處理更改? – maverickwoo

+0

架構肯定會頻繁更改,並且大多數記錄會丟失很多條目。如果我只是建立一個常規的mysql表,我不得不經常在模式更改時運行ALTER TABLE命令,對嗎? – Suresh

+1

如果將條目劃分爲「普通」和「罕見」,則不必更改任何表格,然後將前者存儲在矩陣形式的表格中,將後者存儲在列表形式的表格中。但是爲了執行查詢,您需要將列表中的條目轉移(但您可以自動轉動)。然而,除了使用SQL進行查詢的能力(以及與成熟的SQL工具支持相關的好處)之外,我不清楚使用這種方法會帶來哪些其他好處。所以如果非SQL查詢對你來說很好,那麼你命名的新系統確實很好。 – maverickwoo

回答

1

我是SQLite的粉絲。 SQLite支持像MySQL這樣的DBMS的許多基本功能,例如使用標準SQL進行查詢,但作爲包含在大多數程序中的單個dll運行。數據庫本身作爲一個單獨的文件存儲,並且你看起來想要放入的數據量可能會非常小。 SQLite可以和PHP一起工作,你可以找到一個入門教程Here.享受!

+0

我沒有想到要檢出SQLite。感謝這個想法。我也會考慮這一點。我的擔心是可能缺乏模式靈活性,但我會深入研究這一點。 – Suresh

1

從您的描述來看,它似乎是一個文檔商店或一個專欄商店會適合你。由於大多數nosql變體都是針對「大數據」的,因此大多數nosql選項可能會對你想要做的事情過度殺傷。

現在你的數據集有多大?如果它相當小(幾十個演出的問題),那麼你最好用一個內存數據庫來服務。這將有助於查詢執行,並且您只需要一個節點/服務器。

也就是說,像mysql這樣的東西可能沒問題。既然你提到的只是少量的數據,那簡直就是我的意圖。

然後,您可以使用開源工具(如Pentaho或Jaspersoft)通過報告提取數據。它們非常易於安裝和使用。

感謝,

傑夫

+0

db是微不足道的。我們正在談論MB,甚至沒有GB。什麼是良好的內存數據庫系統? – Suresh

+0

Mysql確實有表格的內存引擎。唯一的問題是,當你殺死系統時你會失去它。您也可以將數據加載到innodb表中,然後在啓動時將數據加載到內存中。長話短說,只有兆字節,除非你在數百分之一毫秒,那麼你幾乎可以確定任何數據庫。 – JeffIB