我有一個表格,它有近150個複選框,但它們不在一個地方,表格分爲多個部門,每個部門都有塊,複選框根據他們的組放在這些塊中 在這裏你可以找到四個複選框在這個地方,八個在其他和其他30個,所以繼續下去。
所以我做了兩個表來存儲組和其他存儲複選框以及它們屬於哪個組。
FormBlocks
--------------------------
| ID | key |
--------------------------
| 1 | property_type |
| 2 | providors |
--------------------------
BlocksCheckBoxes
------------------------------------------------
| ID | Label | Key | FormBlockId |
------------------------------------------------
| 1 | Sweet Home | home | 1 |
| 2 | Farm | farm | 1 |
| 3 | Invst Bank | bank | 2 |
| 4 | Constructor | constr | 2 |
------------------------------------------------
我有自己的價值觀存儲兩種方法:
第一個店的複選框值作爲其鍵的連接字符串,然後直接插入到指定的表,例如:
UserProperties
----------------------------------------
| ID | Customer | PropertiesType |
----------------------------------------
| 1 | Cat | home,farm |
----------------------------------------
優點:非常容易實現,我需要的僅僅是添加一列,而且您準備好了,理論上它更快
缺點:會丟失數據完整性的分貝水平,這將取決於應用程序級別(我想我能活那麼)
我創建的每個塊表的第二種方法,如:
UserProperties
---------------------
| ID | Customer |
---------------------
| 1 | Cat |
---------------------
UserPropertiesTypes
--------------------------------------
| ID | CustomerId | CheckBoxId |
--------------------------------------
| 1 | 1 | 1 |
--------------------------------------
| 1 | 1 | 2 |
--------------------------------------
利弊:我認爲它是專業的方式,並將確保在db級的數據完整性
缺點:我需要爲複選框組中的每個部分創建表,這是開發中的一個頭痛問題,特別是如果您有多個組形成。
我沒有考慮按位,因爲我將不得不爲每個複選框創建一個列,並且我發現它對於擁有超過30個複選框的大組不是有效的。所以我寧願做出一種方式,將在應用程序中執行
如果您有任何建議或更好的方法來做到這一點,請不要猶豫,告訴。 非常感謝您
非常感謝您的回答,請花時間檢查一下。 – Kronass 2010-07-10 14:11:57