项目中有这样一个需求:
现要实现一个某商品库存管理的报表,比如手机,而且商品存在于有多个仓库,分别进行管理,例如北京库房,上海库房。。。,其中有几个基本的字段:库存,当日入库,当日售出,售出途径。。。
而库存给出的计算公式为:前一天的剩余库存+当日入库-当日售出,
当日售出的计算公式为根据不同的销售途径累加,例如:门店售出,网上售出。。。
要实现这样的报表,该怎么设计实体类?或者有什么好的建议?
您的解答将不胜感激!!!
在线等。。。
这个是不是需要看你数据库的设计了?
按照你数据库设计表的字段设计
楼主先要知道 实体类是用来干什么的
比如Hibernate中 使用实体类 是希望通过操作实体类来简化sql语句
那么 你的设计观点 就可以从持久层入手
表与实体类对应来设计 既然各个库房里的表已经设计好 而且手机肯定已经有了实体类
那么我想你应该知道怎么设计了 让表与实体类对应即可
表中字段映射成实体类属性 对应get set方法自动生成 (当然,现在一般都是自己写代码生成器实现)
建议楼主先看下表结构 看完了 理清楚了sql语句怎么写 我想你也知道应该怎么设计了
不需要计算的字段就按照一般的步骤来,定义然后setter和getter;
需要计算的字段只有getter方法跟别的字段不一样:例如
//库存(storage:Integer类型)的get方法
public Integer getStorage() {
return 前一天的剩余库存(lastStorage:Integer类型)+当日入库(currIn:Integer类型)-当日售出(currSell:Integer类型);
}
就是返回的使用字段计算公式得来的,仅此而已!
使用jpa注解方式,需要确定数据库字段,也是确定bean(entitiy)类字段,然后通过jpa注解中的table(name="")标签自动生成数据库;
具体每一个bean(entity)类字段,根据数据库关系来;比如你所说的一种商品有多个仓库存放,就是一对多关系,我建议使用两张表(商品表和仓库表),商品id关联仓库商品id。
目前流行的处理方式是:数据库不要外键约束,外键约束在java代码中进行。
希望我的建议能够给你带来帮助!
根据实体类生成表,那不如先表再实体类,不然感觉相当的蛋疼啊,两者不是一样的么
同为菜鸟,我觉得实体类是想怎么写就怎么写