应该设计成一个表,还是11个表,高手指点思路,谢谢!

05-12-23 wilson751
数据库是oracle8i,表test包含了20个字段,其中,有10个字段需要限定范围,例如:“用户类型”字段,只能是“超级用户”,“普通用户”,“管理人员”中的一个。此表查询和更新很频繁,对性能有一定要求。

我只知道,有两种办法,

1.在这10个字段上都设置check约束。

2.每个字段独立出来,另建10个表,使用外键约束,查询或更新时,做多表连接。

和表test相对应的是一个jsp页面,页面的form中,有10个下拉列表框。这10个下拉列表框中的值,保存在数据库中。如果请求此页面时,再从数据库中取数据,性能很差。我想当server启动时,就将数据从DB中取出来。

这时,遇到一个问题,例如:jsp页面有一个“用户类型”的下拉列表,它的值需要从DB中取出来。如果将所有20个字段集中在一个表中,只建一个表。我们知道,从数据库中取出的数据,一般都要包装到一个对象中。这时,取出的“用户类型”的值,包装到哪个对象中呢?

应该设计成一个表,还是11个表呢?

谢谢先!

    

banq
2005-12-27 09:50
>应该设计成一个表,还是11个表呢?

我的意见这些都是不重要,都可以,关键你应该从业务对象开始设计,通过对象缓存来提高性能,一般类型都是一个域对象的字段,而域对象一般都是可以被缓存的,因此类型字段和真实对象会被缓存。

至于如何存储,通过hibernate或SQL都可以“随意”处理。

ccname
2006-02-17 14:37
可以设计成二个表:

表test就不用说了,用不用约束要看你的需要了.

第二个表保存限定信息.比方说:“用户类型”保存为

"usertype","0","超级用户"

"usertype","1","普通用户"

"usertype","2","管理人员"

test里的:“用户类型”字段就保存"0""1""2"其中的一个,具体的限制最好通过应用来进行.这样如果你的限制需要进行维护的时候,只用通过一个维护的应用进行就OK了.

"jsp页面有一个“用户类型”的下拉列表"这个问题也就解了吧.

h_backup
2006-04-18 15:12
个人观点应该先设计好对像/类图 然后反向设计表

xderam
2007-02-07 00:22
嗯.有一点不明白.

这样的POJO如何设计呢?

也就是如何在表示层表现出来?

test里id为1 用户类型字段为0 那么如何设计bean才能在jsp里表现为id:1 用户类型:超级用户

猜你喜欢
3Go 1 2 3 下一页