2011-08-01 40 views
0

我們的應用檢索複選框領域的狀態是基於Web的。我們的交易工具是:Java,JDK1.6,Apache Tomcat v6.0.10,PostgreSQL v8.2.3。保存和從數據庫

我們在已獲得約申請頁面/屏幕。 20 - 30個複選框,其中只表示字段的是/否狀態。

我的問題在於,在我自己設計自己的設計/架構之前,我希望能夠與社區一起實現我的實現,並獲得有關其他人如何看待/處理此類設計注意事項的意見/建議。

我的解決方案/設計:用3列創建一個表(USERPREFERENCE):EMPLOYEEID,FIELDID,STATE。通過唯一ID /常量(1,2,3,...,30)定義/指定每個複選框字段。因此,本表中每個用戶將有20-30個條目。這是正常的還是有什麼不同/更好的方式在數據庫級有效處理這種情況?另外,如何將數據庫中的20-30個字段(存儲在行中)的狀態自動映射到JavaBean對象,以便它能夠輕鬆地在Java級別處理來回處理?

USERPREFERENCE表如下所示:

EMPLOYEEID | FIELDID | STATE 
100  | 1  | true 
100  | 2  | true 
100  | 3  | false 
...  | ... | ... 

任何意見/設計方案,歡迎和讚賞。

注意:我們還將開發另一個4頁/屏幕具有相同的功能,每個屏幕中有20 - 30個複選框字段。

更新:請注意以下幾點:這些字段不固定,未來可能會添加新字段。

回答

0

如果這些字段的長度固定,並且您的大多數實體的每個字段都有值(EMPLOYEEID),我會爲每個字段選擇單獨的boolean列。這是從兩個角度更有效:

  • 存儲:你不必存儲每個值(EMPLOYEEID, FIELDID)鍵(PostgreSQL是聰明存儲布爾值)
  • 易用性:它很容易查詢和值映射到模型
+0

的字段*不*固定的,新的領域可能會在未來加入。考慮到這一點,你會建議什麼? – Gnanam

+0

@Gnanam: 他們多久更換一次?每日,每月,每年? 如果發生變化,維護模型有多困難?幾分鐘,幾小時,幾天? 除的情況下,當你需要你的應用程序的用戶能夠添加/刪除dinamically領域,我不會過正火這樣的麻煩。與用戶界面和數據驗證中的更改相比,模型和數據庫中的更改通常微不足道(添加新的bean屬性和ORM映射)。 – Vlad

+0

粗略地說,我可以說田地可能每年都會發生變化。即使這種情況每年都發生,但我儘量避免/儘可能減少維護模型和數據庫所需的時間,但我明白這並不困難。至少Java編碼應儘可能最小化。 – Gnanam