首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于一个SQL,求思路解决办法

2012-04-28 
关于一个SQL,求思路有三个表结构1.配件表,表结构:---------------------------------------------------配

关于一个SQL,求思路
有三个表结构
1.配件表,表结构:
---------------------------------------------------
配件ID(自增) 配件型号 总配件数 可分配配件数
---------------------------------------------------
在配件表中,由于可能有不同批次的相同型号的配件入库,因此,在表中可能有N条只是配件ID不同的数据

2.设备表:
这个表结构与问题关系不大,结构不发了,主要是配件表和设备配置表的一个关联表

3.设备配置表:
---------------------------------------------------
ID 配件ID 配件型号 配件数量 设备编号
---------------------------------------------------

在页面中,用户在编辑设备的时候,能够编辑和设备相关的配件,可以新增配件,可以删除配件,可以编辑某个型号的配件数量;新增的话,将相应的配件型号和增加的配件数插入设备配置表,同时加少相应的配件表的可分配数量;删除的话,从设备配置表中删除相应数据,同时增加配件表中的可分配配件数量;编辑某个型号的配件数的时候,同时更新配件表和设备配置表中可分配书字段和配件数量字段
问题:
1.页面上如何处理,求思路
2.数据库中如何处理,求思路

[解决办法]
之前好像有过类似的帖子,帮顶、
[解决办法]
需要3个SP: 新增,修改,删除..
页面程序用ADO.net呼叫存储过程,传入参数,
数据库端执行对应SP,并返回执行结果.
[解决办法]

探讨
其实就是想实现在对设备进行编辑的时候,实现对该设备对应的配件的编辑;实现对配件表,设备配置表的同步操作

[解决办法]
探讨
其实就是想实现在对设备进行编辑的时候,实现对该设备对应的配件的编辑;实现对配件表,设备配置表的同步操作

[解决办法]
因没有详细表结构和业务逻辑,只能给个程序框架,
SQL code
create proc spkd(@OperateType char(1), -- 操作类型 @PjId int, -- 配件Id @Sl int -- 数量)asbegin if @OperateType='I' -- 新增 begin   insert into 设备配置表 ...   update 配件表 set 可分配配件数=可分配配件数-@Sl where ... end if @OperateType='U' -- 修改 begin   update 设备配置表 ...   ... end  if @OperateType='D' -- 删除 begin   delete from 设备配置表 ...   ... end end
[解决办法]
新增的话,将相应的配件型号和增加的配件数插入设备配置表,同时加少相应的配件表的可分配数量;
删除的话,从设备配置表中删除相应数据,同时增加配件表中的可分配配件数量;
编辑某个型号的配件数的时候,同时更新配件表和设备配置表中可分配书字段和配件数量字段

你这里其实已经说的很清楚了,那么存储过程里只要按这个逻辑来写就可以。

对于存储过程里写的东西来看,除了设备,其他两表都是做更新,就是说存储过程只写关于这两个表按照设备来更新的逻辑,设备的新增修改删除都在存储过程外部实现。
[解决办法]
问题1:页面如何处理
设备配件画面可设计为TreeView 第一级为设备结点其后跟有【添加配件】链接
设备下一级为配件结点,各结点其后跟有【编辑】、【删除】链接
当点击设备结点的【添加配件】链接和配件结点的【编辑】链接时,打开配件列表画面。
配件列表画面可设计为GridView,配件的列表信息后添加“残余数”列。在设备增、删、改
配件时,更新其数量。
问题2:数据库中如何处理
最简单就是使用数据库触发器,写好触发器,每次只要进行简单的增、删、改就行。

以上希望能对你有所用。

热点排行