最近我一直在計劃一個系統,允許用戶定製並添加到Web界面。該應用程序可以與測驗創建系統進行比較。我遇到的問題是如何設計一個模式,以允許對應用程序進行「可變」數量的添加。帶有未確定數據的數據庫設計
我研究的第一個選項是爲添加創建一個對象,然後序列化並將其放入其自己的列中。內容不會經常編輯,所以寫作會很少,但是讀取會很頻繁。 (緩存可用於減少)
另一種選擇是使用除mysql或postgresql之外的其他選項,如cassandra。我以前從未使用過其他數據庫,但有興趣學習如何改進系統設計的使用方法。
關於這個主題的任何輸入將不勝感激。
謝謝。
* 編輯 29/3/14
上的數據有些信息被改變。對於我上面關於使用序列化對象的想法,可以說在表格中我將存儲測驗的名稱,測驗值的點數,然後存儲稱爲測驗數據的列,其將存儲包含信息的序列化對象在問題上。所以,總體來說物體看起來是這樣的:
Questions(Array):{
[1](Object):Question{
Field-type(int):1
Field-title(string):"Whats your gender?"
Options(Array):{"Female", "Male"}
}
[2](Object):Question{
Field-type(int):2
Field-title(string):"Whats your name?"
}
}
的結構當然可以變化,但一般我會被存儲整數determin字段的類型的測驗,然後一個字段來保存該字段的標籤該字段的選項(如果有的話)。
您可以提供一些關於您需要存儲哪些元素/對象的結構以及哪些需要動態創建的信息 –
請注意這裏的「系統中的系統」設計。你會遇到像EAV這樣糟糕的事情。這對傳統的關係數據庫來說是非常不合適的(我認爲這是一個在PostgreSQL上專業工作的人)。認真考慮一個「無模式」或靈活的模式數據庫。 –