系统结构设计请教
我在做一个生猪的预警系统。
主要是统计养殖户的新增猪,卖出猪,死亡猪的信息。
客户端是用android PAD做的程序,由养殖户在日常进行报送。然后服务器端根据用户报送的数据,进行统计分析(比如,在某个时间段共有卖了多少只猪)。
系统里面有一个这样的概念,就是存栏信息。就是当前这个养殖户当前的存栏信息(当前这个时刻存在多少只猪,从第一次录入累记新增-卖出的猪-淘汰的猪-死亡的猪)。
这个呢,我当时想,不能用户每次计算存栏的时候,都从用户第一次录入的时候开始计算啊。那样的话,过了几年后,系统的统计的时候肯定太慢了。于时我就这样设计我的表结构:
T_pig_log:猪信息报送日志
Pig_log_id:主键自增
Pig_type:猪的类型:仔猪,育肥猪。。。
Pig_num:猪的个数
Pig_price:卖出时价格
Pig_sum_money:卖出时重量
Pig_sum_weight:卖出时总金额
Pig_date:录入日期
User_id:用户id
Action_type:操作类型(新增,卖出,淘汰,死亡)
Pig_avg_weight:猪的平均重量
t_pig_spot:当前猪快照
Spot_id:主键
Spot_date:日期
User_id:用户id
Zizhu_num:仔猪的数量
Yufei_num:育肥猪的数量
.... :还有一些其它猪类型的数量
Action_type:操作类型
T_log_ids:关联的t_pig_log 的主键id
T_pig_spot:为当前猪的快照信息,比如我新增一条猪的信息(t_pig_log)
我根据这个信息更新对应的t_pig_spot表。
如果u_id为5的新增了3个仔猪,对应的t_pig_log中有一个记录,我要查找t_pig_spot的user_id为5的spot_date为最新的一行,查看其zizhu_num的数量,,然后在插入一条新的数据,其zizhu_num为刚查到的仔猪num数量+3,t_log_ids为t_pig_log中对应的那个pig_log_id.
这样我查看当前存栏时,就不用从用户第一次录入时开始往后推了。
但是这样又有问题:
1. 用户录入了错误的数据,应该如何修改。
比如用户报送了错误的数据,比如新增了10头仔猪,但用户只新增了5头。管理员在服务器修改这条记录为5条时,t_pig_spot很难更新。
2. 系统还要提示用户,5个月后新增的育肥猪要提示应卖出。这个很难了,没有思路。
因为用户报送的时候没有分批次。这个呢,用户在卖出的时候,我不知道不用卖出的是什么时候新增的猪。
这个系统我这么设计有没有问题啊?有没有更好的解决思路?
需求分析:
http://116.90.86.163:7654/xuqiu.xls