有关数据库建表的问题,我在线等待!谢谢(200分)

  • 主题发起人 主题发起人 老鳖
  • 开始时间 开始时间

老鳖

Unregistered / Unconfirmed
GUEST, unregistred user!
顺序号 工程名称 建筑费 设备费 合计
1 车间内部 500 300 800
1.1 工艺设备 300 100 400
1.1.1 原料区设备 50 5 55
1.1.2
1.2
2
有这样一个表,其中1是1.1,1.2等各自项的和,1.1是其各子项的和,1.1.1下面可能还有
子项,合计又是一个记录的所有列的和,1,2,1.1,1.1.1之类可以是任意多项,请问各大
高手这个数据库该怎么建?我实在是没有主意了,请各位帮忙!!!!
 
你这样行不行.应该跟财务方面的会计科目类似呀.
欢迎与我联系.hbezwwl@163.com,53320295
项目表
项目类 项目编号 上一级项目
原料设备 101 1
新原料设备 10101 101
旧原料设备 10102 101

明细表
项目编号
10101 4.00
10102 8.00
 
这个问题用文件很容易解决!如果用数据库我想可以这样:
首先你要确定子项最多有多少级,如果为i,建表为:
No1 No2 ...Noi 工程名称 建筑费 设备费 合计
1 车间内部 500 300 800
1 1 工艺设备 300 100 400
1 1 1 原料区设备 50 5 55
1 1 2 aaa
1 1 3 bbb
...
2
2 1
2 1 1

 
主要是层次问题,建立的层数不要太多,外键设定一定要仔细
 
呵,就按你那样也行呀!只是汇总麻烦一点!
 
Agree with hbezwwl's Accounting Structure
 
同意hbezwwl的数据库结构。如果要汇总,用SQL语句的LIKE方式很容易实现!!![:)]
 
你的表应该只记录明细数据,
各级汇总用视图实现比较好,不要用表
 
谢谢hbezwwl,我的问题差不多解决了,可是请问linyp2000,视图怎么实现,我不懂!!
 
我以前做过财务软件,就提点思路:
1、设定你的每级长度,如1级3位,2级2位,3级2位等
2、假如明细表结构为:
编号(注:应该为末级) 费用
1010101 4
1010102 9
2010101 3
2010102 6
3、写一个后台函数判断并返回所需级别的编号,入参:编号,级别,出参:指定级别的编号
Function fun_GetBM(p1,p2)
4、创建视图
create view as select
fun_GetBM(编号,级别) 编号,
sum(费用) 费用
from 明细表
group by fun_GetBM(编号,级别)
一般情况下级数不会超过5级,所以,以下视图可以得到各级的汇总:
create view as select
fun_GetBM(编号,1) 编号,
sum(费用) 费用
from 明细表
group by fun_GetBM(编号,1)
union select
fun_GetBM(编号,2) 编号,
sum(费用) 费用
from 明细表
group by fun_GetBM(编号,2)
union select
fun_GetBM(编号,3) 编号,
sum(费用) 费用
from 明细表
group by fun_GetBM(编号,3)
union select
fun_GetBM(编号,4) 编号,
sum(费用) 费用
from 明细表
group by fun_GetBM(编号,4)
union select
fun_GetBM(编号,5) 编号,
sum(费用) 费用
from 明细表
group by fun_GetBM(编号,5)


最后说明:我以前有一张视图可以返回各级的汇总,不用这么复杂,也比较灵活,我帮你找一下。


 
linyp2000,Function fun_GetBM(p1,p2)第一个参数是所需级别编号?不理解!
 
p1是明细编号,如:1010101,p2为所需返回的级别
如需要返回1010101的第一级编号:fun_GetBM('1010101',1)
 
linyp2000,我还有一个问题就是我的这个数据库还有好多明细表是属于上一级的表,以便
利于查询,比如说这个工程是张三做的,到时一查张三可以看他做了几张表?至于这个
表我没写出来,我想用表可以实现,可是用视图就不会了,还望赐教
 
呵呵,没看明白?举例?
 
你的类似树的结构,顺序表关系可以这样建:
序号(主关键字) ID
上级序号(根序号是为空) UpID
你上面的数据为:
ID UpID
1
1.1 1
1.1.1 1.1
1.1.2 1.1
1.2 1
2
明白吗?
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部