设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4176|回复: 3
打印 上一主题 下一主题

浅谈数据库开发(一):关于宽表

[复制链接]
跳转到指定楼层
1#
发表于 2019-9-21 17:24:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大一点的项目,咱也不谈了。毕竟通常不是一个人能解决的问题。分解模块,建表,写业务逻辑等等,其实网上应该也有不少这类文章。这里主要谈一下二次开发的一些问题。需求通常是这样开始的:
例如,公司购买了一套ERP软件。但老板觉得这统计太弱了,有些图表可能不是自己想要的,但再去找厂家开发吧,似乎又不知道什么时候可以搞好,价格多少,等等。于是,老板说,“小王啊(至于为啥叫小王,就问下站长嘛,反正他也姓王),公司有任务交给你。”

你一脸蒙圈地望着这个秃顶的油腻大叔,心想,工资没加过几次,老是想折磨我,且听他怎么说,大不了咱东家不打打西家。

老板挤出一丝微笑,“不用怕,不是练葵花宝典去维护世界和平。只是改改数据库,给咱做几个报表就好了。”

你淡淡地说,“这改啥啊?导出数据库,用Excel做一下不就得了?你把样式发给我……”心里默默地喊了一声“卧槽”。

“小王啊,我需要看公司每个产品每天销量的上月环比和去年同比的,各个产品的占比,还有一年以来的客单价变化……”

你心里快速思考着:每天都要导出一次上月当天和去年今日的数据,再进行对比。。。。尼玛,哪有这样折磨人的?老子不干了还不行吗?心里一千万匹草泥马奔腾而过。

老板开始讲述他的伟大梦想,如何在这销量变化中发现问题,解决问题,最后打算2020年,哦, 不对,是2025年,带上你去纽约敲钟上市,毕竟你是公司的大功臣嘛……你却一个字都听不进去,最后他讲完了,问一句,“你觉得Excel容易实现吗?”

你一脸无奈,“好吧。我试试看吧。”心里却在嘀咕着,现在要不是互联网寒冬,我特么还会让你这样蹂躏吗?我小王生不逢时,命运多舛啊。对这个问题,心底却没什么谱,也不知道能不能做,该怎么做。

在你拿到老板给的模板后,你开始思考怎么着手了。既然要看这个结果,那么我就把这个结果做成一个表呈现出来不就得了吗?
那这个表的数据又该怎么处理?环比是需要拿数据对比才能算出来的啊。所以你觉得应该加两个字段:上月销量,去年销量。但是这按每个产品做成一列,又该怎么处理呢?而且还是二级的…如果没有数据的话,又该怎么处理呢…你不禁陷入了沉思。

于是一个很现实的问题摆在了你的面前:如何建立宽表。


关于宽表,一般情况下是根据需要展示的字段来建立的。像这个图,至少需要以下字段:

当然这是初步的处理。接下来,你可能需要考虑一些查询问题,例如,按某个门店来分别查询统计。。。至于需要什么,你可能还要和老板进一步商谈(顺便提下加薪的事情。毕竟这太南了)。

在实际的工作中,宽表的建立是一个很重要的事情。这里只是简化了一些操作罢了。必要时,可能需要建立一些中间表,最后通过中间表的加工来填充宽表。例如,像这里的“去年销量”,“上月销量”,就可以单独剥离出来放在中间表里。当然,如果数据不多的话,也可以像上图那样,加在宽表上。

由于这里的查询只是根据日期,所以可以把“环比”,“同比”加到字段里。但如果出现更复杂的查询(例如,按门店名称,按门店所属城区合计后计算环比和同比等等)时,则应该考虑删除这两个字段。——因为这两个字段是动态的,无法固化下来。那么该怎么展示呢?这时候则是通过一定条件的SQL语句来写了。

絮絮叨叨,今天就先说这么多了。

相关文章:
浅谈数据库开发(一):关于宽表
浅谈数据库开发(二)——从宽表到存储过程(之一)
浅谈数据库开发(三)——从宽表到存储过程(之二)
浅谈数据库开发(四)——从宽表到存储过程(之三)
浅谈数据库开发(五)——从宽表到存储过程(之四)
浅谈数据库开发(六)——从宽表到存储过程(之五)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2019-9-27 08:56:12 | 只看该作者
已经蒙圈
回复

使用道具 举报

3#
发表于 2019-11-16 16:28:14 | 只看该作者
这是好多民营企业的报表要求,深有体会,难呀!
4#
发表于 2021-10-11 10:19:09 | 只看该作者
学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-24 12:53 , Processed in 0.115720 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表