日期:2014-05-17  浏览次数:21274 次

关于SSH框架下多对多关系的数据库设计和实体类怎么写?
本帖最后由 zhangxu5274 于 2014-05-06 21:54:08 编辑
比如说订单和商品,用户和用户收藏的商品这两个都是多对多关系。那么数据库设计应该是:

订单表(订单ID,用户ID,订单时间,.......),
商品表( 商品ID,商品名,价格,...),
订单商品对应表(订单ID,商品ID,下单时的成交价格,数量......)

之所以要存下单时的价格是因为如果从商品表中读取的话只能是商品现在的价格,那么下订单的价格可能是不一样的,所以要存一下。


但是我的问题是:这三张表都要在model层写三个对应的实体类吗?还是说只要写订单类和商品类,然后设置ManyToMany的注解即可?如果只写订单类和商品类那么这个下单时的价格在类里就没有对应的字段了啊?

同样的,对于用户和用户商品收藏之间也有一个收藏商品的时间这个要存储,就这就上面存储下单时商品价格问题变得一样了。

菜鸟,对于Hibernate一知半解。所以想请教大神们一下,具体这些表在model层应该写哪些类,怎么写?按说应该不需要一对一的啊。从面向对象的思想来说商品订单对应关系完全算不上一个对象,需要写一个对应的类吗?如果不写的话,问题就更复杂。总是想不通,希望有人可以详细解释一下,谢谢。
------解决方案--------------------
实体类里面用两个hashmap集合,例:private Set<Appeal> appeals=new HashSet<Appeal>();
------解决方案--------------------
多对多要在数据库中有个中间表也就是订单商品对应表,实体类里面用hashmap集合