讨教每日产品销售数据的数据库该怎么样设计,谢谢

MySql 码拜 6年前 (2016-02-12) 865次浏览
需求是这样的。
一家县级银行,下连十个网点,每网点有6-8名员工,销售产品大约有五十多种。
想让每名员工每日录入自已每种产品的销售数量,实现按日、按网点、按整个县级银行查询统计。
本人认为应该有以下几个表
1   网点列表。  字段  网点号  网点名称  县行号  县行名称
2   员工列表。  字段  员工编号  员工姓名  性别  网点号
3   产品列表。  字段  产品编号  产品名称编码  产品名称
下面怎么样统计销售数据就想不清楚了。以下三种该是哪种,还是有更好的方法?
4  销售统计表  字段  员工编号  产品编号  日期  销售数量  这是一种,但四个字段都有重复值例如
员工编号  产品编号  日期           销售数量
1                  001            20160201            10
1                  002            20160201            10
1                  003            20160201            10
2                  001            20160201             10
2                  002            20160201            10
2                  003            20160201            10
这样的话这个表将随着数据增加异常庞大吧?
再不然就是下面这种方法,每天一张表?
5  表名就是日期?   字段  员工编号  产品编号  销售数量
6  再一种  每个销售人员一张表  表名就是  字段   员工编号  产品编号  日期  销售
请高手解惑,万分感谢!
解决方案

10

销售明细表 (流水号,员工编号,产品编号,日期,销售数量,网点号)
这个表会大,建议LZ可以预估一下这个表会有多少条记录,一般来说假如不是大公司的销售记录应该不会太大的。
100个网点 * 365天 * 10000条销售记录 = 365M条

30

4  销售统计表  字段  员工编号  产品编号  日期  销售数量  这是一种,但四个字段都有重复值例如
相对来说,这种方法比较合理,也符合数据库设计的基本规范,至于你说的实际上是2个问题:
1、就是4个字段中会有重复问题,例如1号张三买了A产品 10个,到了2号数据也差不多,看上去都是一样的,但是这个是按照业务来存储的,并不是重复,这个只是明细数据。
就像 我们每个人的身份信息一样,张三和李四,都是xx省xx市xx镇xx村的人,性别都是男,年龄都是20岁,出生日期是同一天,你能说这个数据是重复的吗? 显然不是重复的。
2、就是数据量一大怎么处理?
数据量大,首先是大到什么程度,是10w,还是100w,还是1亿,假如是百万级别的,可以创建一些索引,来提高速度。
另外,也可以采用分区表,每月一个分区,不需要每月一个表,或每一个销售一个表,这么搞太麻烦了,你还得修改应用。
此外,还可以再创建一个辅助表,里面存储了每个销售每月的销售汇总值,每天晚上跑一下任务,预先计算好,等查询的时候就会很快。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明讨教每日产品销售数据的数据库该怎么样设计,谢谢
喜欢 (0)
[1034331897@qq.com]
分享 (0)