主题:  头痛的问题,这个表结构应该如何设计?

不是高手

职务:普通成员
等级:3
金币:5.0
发贴:1352
#12004/11/19 10:38:28
公司要做一个资产及负债报表,涉及报表项目有140多个

我用SQL SERVER做了个表(eg:tab_obj)把这些项目都输进去了,然后从库里动态读出所有这些项目。现在要添加这些项目的数值,所以又做了个值表(eg:tab_objvalue),把值输进去,然后表每条纪录有tab_obj的ID和该项目的输入值。

不过头疼的事情来了,有些项目的值是不定的,是计算其他某些项目的值的加和或者加加减减,这个该怎么办?是不是这个表结构设计的有问题?

高人指点指点,谢谢了!



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#22004/11/19 11:28:28
你可能是这样意思吧,即一个表添加进所有项目的记录,而每个项目均有一个或多个需要输出的数据记录。每个项目只输出一个记录则较好办,但多个记录就有些麻烦了。

我以前做过这样一个查询,一个仓库表,动态添加仓库(仓库记录不是固定的,可能2个,也可能5个),要求查询每个仓库中,每种商品的库存。所以设计了个表,把每个仓库的仓库名作为一个字段,而以每种商品作为记录。

首先是查询仓库表,得到仓库ID及名称,然后用一个循环生成SQL语句
sql = "SELECT ProductID, ProductName "
for (int i = 0; i < arrayStockName; i++)
{
    sql += ","
    sql += "( SELECTT SUM(UnitsInStock) From Stock "
        + " WHERE ....."
        + " GROUP BY.... )"
}
sql += " FROM Product WHERE.....";

试了一下,速度中等,但比一个一个查询肯定要快了。


非常大鱼

不是高手

职务:普通成员
等级:3
金币:5.0
发贴:1352
#32004/11/19 13:04:00
情况是这样的:

页面内容:
项目 ——值
项目1——2
项目2——3
项目3——4
项目4——5
项目5——?

其中项目1-5这些标题是从tab_obj里读出来的,现在页面上要填写这些项目的值,然后提交到tab_objvalue表里,这个表里存储的是项目名称的ID(关联tab_obj)及值,但是情况是项目5的值可能是1+2+3的和,也可能是1+2-4的值,这样就搞的没方向来……



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#42004/11/19 14:40:24
tab_obj中应该设计项目的ID了吧,这是必须的,可以关联到其它表。如果没有设计,请一定设计好。这样就可以不用担心是项目5学项目6的外面显示了,只要知道该项目的ID号,在tab_objvalue中插入数据:
sql ="UPDATE tab_objvalue SET Objvalue=" + strvalue
    + " WHERE ObjectID=" + strID;


非常大鱼