2012-01-13 24 views
1

我有一組檢查表是動態的,當用戶選擇它需要保存在數據庫中。但是表格的屬性應該是動態的。因此,我們無法將清單值作爲表格的列。由於清單是動態的。因此,請幫助我如何設計數據庫,以免出現性能問題。當用戶填寫他的詳細信息以及動態覈對清單值時,所有詳細信息都會存儲到包括動態的表格中。請提供一些關於此問題的建議。如何有一個動態的數據庫設計與動態值

+0

無論他們是否是「動態」,重要的是:他們的價值可以以任何方式參考?如果他們是(和我它會是一個非常奇怪的系統,如果他們不),你可以使用關聯表。 – Viruzzo 2012-01-13 13:35:22

+0

你可以稍微更具體一點 - 也許提供的「動態」的表和字段的例子嗎? – 2012-01-13 13:49:58

回答

3

由於Viruzzo說的,所有你需要做的是建立一個關係表,就像這樣:

**Table User** 
int ID 
String name 

**Table CheckBoxOptions** 
int ID 
String description 

**Table User-Checkbox-Relation** 
int UserID 
int CheckboxID 
boolean value 
int position 

然後,所有你需要做的就是添加一個條目的關係表中的每個選項給定用戶有他的形式。閱讀時,閱讀關係表並搜索具有所需用戶標識的所有條目。

亞倫Digulla建議,您可以保存位置的用戶複選框,關聯的選項,使用現場就像在我的例子中,「INT位置」。通過這種方式,您可以在每次呈現表單時以相同的順序顯示選項。 :)

+1

您可能需要一個'position'添加到表'用戶複選框,Relation'能夠排序條目。 – 2012-01-13 13:50:46

0

創建您的屬性的XML,並將其存儲在數據庫中,然後從那裏獲取並解析您的屬性或創建一個數組類型字段和存儲您的姓名=值對那裏。

乾杯

0

有很多方法來解決這個問題:

  1. 您可以創建一個表USER_IDPOSITIONTEXTSTATUS如果每個檢查列表是不同的(即當沒有點創建項目表列表中,因爲沒有重用)

  2. 如果用戶只能從一組有限的清單選項中進行選擇,然後你笑ULD對所有選項的表,並創建一個表USER_IDPOSITIONOPTION_IDSTATUS

  3. 如果你總是需要所有的選項,你再也不需要通過短信或狀態來搜索條目,您可以使用自己的數據結構並將其保存爲數據庫中的BLOB。優點:你完全免費的結構是如何工作和看起來像。缺點:你最好是第一次做對,因爲將它遷移到一個新的結構會變得很糟糕。