日期:2014-05-20  浏览次数:20717 次

关于数据库和实体类的问题
这个问题困扰了我很久,也翻阅了一些资料但还是没有解决!

问题是这样的:
主表:orders,列(oid,订单名)
主表:books,列(bid,书名)
子表:items,列(oid,bid,订单明细的列)

现在我想把“订单名”,“书名”,订单明细的所有列同时查出,在数据库用内联是实现的!
但我要保存到java的实体类中

那我的实体类要怎样设计呢??


我想了一下:
1.如果orders实体类的属性是(oid,订单名,List<items>)
  books实体类的属性是(bid,书名,List<items>)
  items实体类的属性是(订单明细的所有列)
这样不能实现!因为orders和books没有关系,不能把三个表的数据保存起来

2.如果orders实体类的属性是(oid,订单名)
  books实体类的属性是(bid,书名)
  items实体类的属性是(orders,books,订单明细的所有列)
如果这样设计是可以实现,但不合理!这样的话就变成了items里面包含orders和books了!(items变成了主表了)


在此先感谢大家~谢谢!


------解决方案--------------------
探讨
所谓概念上的主表和子表,关系很大么?

就按照关系来也没啥:
orders实体类的属性是(oid,订单名,List<items>)
items实体类的属性是(books,订单明细的所有列)
books实体类的属性是(bid,书名)


实在你觉得烦,直接为这种查询结果定义一个专用实体类,连嵌套关系都不要了直接搞定也行。