保存并从数据库中检索复选框字段的状态

时间:2011-08-01 11:15:42

标签: java database recommendation-engine

我们的应用程序是基于网络的。我们的交易工具是:Java,JDK1.6,Apache Tomcat v6.0.10,PostgreSQL v8.2.3。

我们在应用程序中有一个大约有的页面/屏幕。 20 - 30复选框,仅表示是/否的字段状态。

我的问题是,在我确定自己的设计/架构之前,我想与社区一起反对我的实施,并就其他人如何看待/处理此类设计考虑因素获得意见/建议。 / p>

我的解决方案/设计:创建一个包含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个复选框字段。

更新:请注意这一点:字段不固定,以后可能会添加新字段。

1 个答案:

答案 0 :(得分:0)

如果字段的长度固定,并且您的大多数实体(EMPLOYEEID)的每个字段都有值,我会为每个字段选择单独的boolean列。从两个角度来看,效率更高:

  • 存储:您不必为每个值存储(EMPLOYEEID, FIELDID)密钥(PostgreSQL对于存储布尔值非常聪明)
  • 易用性:可以轻松查询并将值映射到模型