现在有这样一个问题:一家省级机关处室,每天有多家企业上报各个企业的资源利用情况,上报的项目是:每天产生的资源名称,产生的量,每天加工的资源名称,加工消耗量,加工生成资源名称,加工生成量,每天利用的资源名称,利用量
需要说明的是上报的有3大项:生成的、加工的和利用的,加工就是利用原来的资源生成新的资源,利用的就是利用原来的资源,上报上来后要出一个汇总表,表的结构如下:
区域、资源名称、上报单位、本日产生量、本月上报单位库存、加工上报单位、加工上报单位库存、加工生产资源名称、本日加工生成量、本月累计、利用上报单位、本日利用量、本月累计、综合利用率
请问这样的表如何设计更合理?谢谢!
------解决方案--------------------
sf,这算不算参与?
------解决方案--------------------
算不算参与?UP了要分再看
------解决方案--------------------
要是只是为了这一功能,你是设计没什么大问题,基本满足要求。
但为了以后扩展,就不能那么简单设计了。
区域、资源名称、上报单位、本日产生量、本月上报单位库存、加工上报单位、加工上报单位库存、加工生产资源名称、本日加工生成量、本月累计、利用上报单位、本日利用量、本月累计、综合利用率
中分出各个实体,如区域,可以设计成一个专门的区域表(区域ID,区域名称,区域代码...),
上报单位 可以设计成一个单位表(单位ID,单位名称,所属区域,联系人,。。。)
资源,可以作为一个专门的资源表(资源ID,资源编码,资源名称,单位,。。。。)
。。。 。。。
想想,就会设计得越细,也越完善。
好了,先回去吃饭,下班了。呵呵
------解决方案--------------------
应该要有一个上报时间字段.
像本月累计这种汇总字段可以不用,查询的时候再汇总得到.
------解决方案--------------------
对应内容建三张明细表,对应建三张汇总表(第月汇总),由三张汇总表产生一张大表(每月)
按年或季由汇总表动态产生,基本信息如单位、区域、资源名称 抽取成新表;
但三张内容表中也存入单位名称与区域名称及资源名称以便于快速查询(并在其上分别建非聚集索引),可以用自增作标志,日期以字符格式存入加上id建立主索引
------解决方案--------------------
企业表(企业代码,企业名称,区域)
资源表(资源代码,资源名称)
日报表(日期,企业代码,产生资源代码,产生量,加工资源代码,加工消耗量,生成资源代码,生成量,利用资源代码,利用量)
------解决方案--------------------
不用写那么多吧
------解决方案--------------------
改进不少呀。鼓励呀
1.char可以改成nvarchar(长度)格式,要是长度变化不大的建议改成nchar(大约长度)
2.[riqi] [datetime] 要是没有具体的秒,可以使用smalldatetime就够了。
3.给每一个表加一个表ID作为主键,和设置相应的外键,如[danwei] [char] 单位,可以引用企业表中的表ID就可以。
[liyongziyuan] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,--利用的资源名称
这个也一样,引用资源表中的表ID就ok。其他也这样纠正。
------解决方案--------------------
多分几个表会比较好。
我觉得表要小点,看的明白点!
区域、资源名称、上报单位 可以作为一个
上报单位、本日产生量、本月上报单位库存、加工上报单位 作为一个
类推,看清楚是最重要的
------解决方案--------------------
好像我做过的一个海关报关系统一样.
不过比我做的简单些罢了.
------解决方案--------------------
楼主啊,你要的结果是不是应该是下边的啊,你的那些数据太多了把我都搞晕了^_^
下边的这个结果是希望得到的,就是三个表之间怎么连接的问题,请各位老师指点一下,谢谢!
日期 区域 资源名 单位(产生) 产生量 单位(利用)利用量 单位(加工) 加工量 新资源 新生成量
----------- ----- ------ ------- ------ --------- ------ ------------ ------- ------ --------
2007-05-18 区域A A资源 单位甲 5.00 单位乙 6.00
2007-05-18 区域A A资源 单位乙 10.00
2007-05-18 区域A B资源 单位甲 6.00 单位丁 35.00 单位丁 35.00 D资源 25.00
2007-05-18 区域A C资源 单位甲 5.00
2007-05-18 区域B A资源 单位甲 5.00
2007-05-18 区域B A资源 单位丙 2.00
2007-05-18 区域B B资源 单位乙 5.00 单位乙 5.00 单位甲 15.00 D资源 10.00
2007-05-18 区域B C资源 单位丙 20.00 单位丁 20.00 E资源 15.00
这就是三个表之间的连接嘛,我前一段时间好像见过这样的,可是我忘了怎么写SQL语句了,我替你整理一下,让高手给出SQL语句吧,我也顺便学习一下,这个问题比较常见,很经典
------解决方案--------------------
怎么换行了?不太直观了,重新发一个短的,这样好看点
日期 区域 资源名 单位(产生) 产生量 单位(利用)利用量 单位(加工) 加工量 新资源 新生成量
--------- ----- ------ ------- ------ --------- ------ ------------ ------ ------ --------
2007-5-18 区域A A资源 单位甲 5.00 单位乙 6.00