当前位置: 代码迷 >> .NET分析设计 >> 【100分】web页面开单据,单据明细有几千条,请教如何读写才能保证性能和数据的准确性
  详细解决方案

【100分】web页面开单据,单据明细有几千条,请教如何读写才能保证性能和数据的准确性

热度:2004   发布时间:2013-02-25 00:00:00.0
【100分】web页面开单据,单据明细有几千条,请问怎么读写才能保证性能和数据的准确性?
现在做的系统有一个盘点功能,开一张盘点单据 输入盘点明细,保存后生成盘盈盘亏结果列表,确定后更新库存。

一次盘点几千条商品数据, 如果全部都在一个页面编辑和提交的话 难免太大。如果用分页,怎么保存中间数据,以及确保数据的准确性

大家帮忙想想有没有什么成熟的解决方案






--10.仓库盘点主表
create table StockTakeST
(
id int identity(1,1) primary  key,
chekNo varchar(50),
checkDate datetime default getDate(), --盘点时间
storageId int, --仓库Id
checkUsrId int,--盘点人Id 
operUsrId int ,--审核人Id
operDate dateTime,-- 操作时间
remark varchar(100),
isCheck bit default 0
)
go
--11.仓库盘点明细表
create table StockTakeSTDesc
(
id int identity(1,1) primary  key,
stockTaskSTId int ,--主表Id 
goodsId int,--货物ID
stockNum int, --仓库数
checkNum int, --盘点数
isCheck bit --是否已操作,代表是否确认了盘盈盘亏的操作
)
go

--12.(冗余出来的盘点结果表)主仓库盘亏盘盈的记录 作用:这一项盘亏盘盈的记录是来自哪条盘点单的信息
create table ProfitLossST
(
id int identity(1,1) primary  key,
stockTakeSTDescId int,--盘点明细表中的ID(这里有冗余)
stockTakeSTId int,--盘点单ID
checkNum int,--盘亏盘盈数量
operUsrId int ,--操作人Id
operDate dateTime,-- 操作时间

)
go
------最佳解决方案--------------------------------------------------------
应该在服务器上开一个表保存用户的输入,并且允许用户在线编辑,使用ajax每次显示一部分信息。
------其他解决方案--------------------------------------------------------
如果你不像具体的业务工作人员学习,一个程序员永远也写不好企业管理软件。

盘点录入时,各盘点页面是“自然而然”地分页的。不是因为学习什么软件控件、网上的“范例”才分页,而是业务人员自己都懂得要分页地去整理盘点资料,然后才录入。

如果你把精力放在业务人员原始的“分页”概念上,而不是什么编程控件的所谓分页概念,那么这个设计就可以很顺利、很具体、很实用。比如说业务人员通常会要求在电脑上录入盘点表、打印盘点表时要打印每一页的数量合计(尽管量纲没有任何意义),因为她会原始的手工单据上连续n个数量的合计数、跟你打印出来的盘点表上相同顺序的的n个数量的合计数做对比。同时业务人员还会将不同页面的内容分包给不同的人去负责。许多单位要求先打印出几十页盘点表然后才发给盘点人员(而不是随机录入盘点明细)。

等等这些都是实践经验,没一个单位不同。如果你不懂用户她们已经熟悉的业务,自己根据所谓的编程控件的功能而拼凑、想出所谓的盘点操作流程,用户就会倒霉。
------其他解决方案--------------------------------------------------------
实践经验,没一个单位不同  -->  实践经验,每一个单位不同
------其他解决方案--------------------------------------------------------
如果你觉得我写的这些不是你想抄袭的那些代码,我只能说很遗憾。

按照用户的操作体验去设计程序流程,结合一些编程测试(特别是自动化测试)经验,你就能解决“中间数据的准确性”问题,而且是很自然地就随着功能的细节而解决了,根本不会出现问题。
------其他解决方案--------------------------------------------------------
引用:
应该在服务器上开一个表保存用户的输入,并且允许用户在线编辑,使用ajax每次显示一部分信息。


+1
------其他解决方案--------------------------------------------------------
引用:
如果你觉得我写的这些不是你想抄袭的那些代码,我只能说很遗憾。

按照用户的操作体验去设计程序流程,结合一些编程测试(特别是自动化测试)经验,你就能解决“中间数据的准确性”问题,而且是很自然地就随着功能的细节而解决了,根本不会出现问题。


你从我的问题的哪个字眼判断出来我是想抄袭? 不要随便找个罪名加在别人头上,然后站在道德制高点来批判别人.

"如果你不像具体的业务工作人员学习,一个程序员永远也写不好企业管理软件。"
你又是从哪个字眼看出来我有想写好企业管理软件的意向?我有说过吗.
  
你前面说的那些挺有道理,但对于我的问题,相当于什么都没说
你只是主观的在我的问题上附加一些你自己捏造出来的负面的想法,然后批判一通.
我是来请教问题的,不是来接受你的高谈阔论的.
你也不是来解决问题的,你只是来炫耀.你只是所谓的"高手",自我感觉过于良好的"高手".你的自尊只是通过践踏别人来得到的. 在我眼里 你最多就是会写代码的屌丝,内心阴暗的屌丝,需要践踏别人的自尊来得到一点小小的满足感的屌丝


------其他解决方案--------------------------------------------------------
我的问题是 求一个成熟的解决方案
并不是:如何写好一个企业管理软件
也不是:求盘点代码


看清楚再回答
------其他解决方案--------------------------------------------------------
我觉得  咋们程序员   通过个人技术能力的成长来得到成就感很正常, 解决一个技术难题自我陶醉一下也无妨.
但技术再牛的程序员也是人. 做为一个人,要知道我们是靠什么活在这个世界上的
不说了 结贴
  相关解决方案