日期:2014-05-16  浏览次数:20389 次

这样设计数据库/POJO合理吗?
练手的天气预报程序.用了spring和hibernate
表weather就不用说了,有最高气温最低气温 天气情况 风速 风向等字段,其中天气情况 风速 风向本来应该是varchar类型的.比如,风向:南风 风速:七级 可我想用数字存储.即
第二个表保存限定信息.比方说:“风速”和"天气情况"保存为
"wind","0","一级"
"wind","1","二级"
"wind","2","三级"
"weatherinfo","3","晴"
"weatherinfo","4","阴"

weather里的:“风速”字段就保存"0""1""2"其中的一个,具体的限制最好通过应用来进行.
其中pojo是这样设计的:

weather:
 
     private Integer id;
     private Date time;
     private Date date;
     private Integer maxTemperature;
     private Integer minTemperature;
     private Integer windchill;
     private Integer weatherinfo;

上面省略一些字段和get set方法


第二个表对应的pojo类

General
 
     private Integer id;
     private Integer typeId;
     private String values;
     private String text;
     private String url;


现在遇到的问题是:
在Servlet里new一个weather对象然后request.setAttribute("weather", 新对象);之后跳转到相应的jsp页面
这样在JSP中[weather.windchill]只能得到一个数值.并不能得到譬如南风北风之类的文字描述.
请教各位是不是要修改pojo设计?还是有什么方法我不知道的?
1 楼 akun_007 2007-02-07  
通过外键感觉上更严谨一些,但是显示的时候的确是个问题。
直接存为varchar可以方便的显示,维护起来应该也没有什么问题吧。
2 楼 akun_007 2007-02-07  
想起来了,POJO中用String型的,表结构不变,查询的时候用等值连接就OK了。和Hibernate和Spring关系不大吧。
3 楼 xderam 2007-02-07  
嗯..那就是说是sql语句的问题..
那么
这样结果的SQL语句应该如何写呢T_T
test表
id a b
1 2 3
test1表
id c
2 text2
3 text3
显示结果为
id a b
1 tesx2 text3
4 楼 抛出异常的爱 2007-02-07  
POJO与VO应该分开。。。。
5 楼 xderam 2007-02-07  
抛出异常的爱 写道
POJO与VO应该分开。。。。
嗯.那就是还要弄一个VO的类?T_T
6 楼 _19_ 2007-02-07  
POJO里加个getWindchillName()方法,页面里[weather.windchillName]
7 楼 xderam 2007-02-07  
_19_ 写道
POJO里加个getWindchillName()方法,页面里[weather.windchillName]
嗯.可行.可POJO里还有好多类似于windchill的属性
不知道还有什么其他的解决方案吗?

8 楼 抛出异常的爱 2007-02-07  
xderam 写道
抛出异常的爱 写道
POJO与VO应该分开。。。。
嗯.那就是还要弄一个VO的类?T_T


正统OO的设计。。。。
stratus +form

传vo

service+vo

传entity

dao+entity
9 楼 xderam 2007-02-07  
抛出异常的爱 写道
xderam 写道
抛出异常的爱 写道
POJO与VO应该分开。。。。
嗯.那就是还要弄一个VO的类?T_T


正统OO的设计。。。。
stratus +form

传vo

service+vo

传entity

dao+entity
狂汗+瀑布汗+成吉思汗.
现实中这样做的多吗?
10 楼 jianfeng008cn 2007-02-07  
xderam 写道
抛出异常的爱 写道