远程每门店专线2M网络,CS方式约60用户操作数据库该怎样设计?
使用SQL server2000数据库,一个CS数据库程序原来用在局域网,现在需要开发远程版本,比较大的一个表约几万条记录,不过在不断增长.
现在问题是:
1、约10个门店,每门店2M专线,每门店约6台客户端,这样能否支持所有用户同时读写数据库的速度。
2、怎样设计表?
是否需要把那个较大的库存表拆分成每门店一个表,总部可以一起查询这些表。
有没有其他好的办法来提高性能?
问题点数:50、回复次数:17Top
1 楼samchoy(老蔡)回复于 2004-12-03 22:31:10 得分 0
关注Top
2 楼ttfwind(橙子)回复于 2004-12-03 22:53:46 得分 20
具体的性能我不太清楚
我帮你分析一下吧 首先你是关于销售的系统吧
需要结合你的现实 就是1、你的总店需要查询什么情况 ; 2、总店和分店之间的关系就是业务往来具体是什么?
第一种:
如果只是你说的库存表的话 服务器上面放总的库存表,每个店里面存放和自己相关那部分的数据表(也就是说服务器上的是一个大的副本,每个店插入、删除纪录的时候对自己的表进行,同时告诉服务器有记录插入、删除在合适的时间把这个插入的数据送到服务器或者是让服务器删除某个信息)
第二种:
就是你的服务器上没有副本,仅仅是一个视图(查询所有客户端的信息的)每个客户端建立一个针对
服务器需要信息的触发器 当库存信息发生改变 就通知服务器
我也只是简单看了一下 没有认真想 关注后来的回复!Top
3 楼TryToday(超口术生命体)回复于 2004-12-04 00:33:08 得分 0
基本上是医药进销存,数据量大的主要是销售记录和库存,所以不是很复杂,只是没有做过。
楼上说的意思是不是:各分店都有各自的服务器,总店只是被动的查询各分店服务器。不过把不同服务器的库存联合到一起查询还不知道怎样用。
等待高手Top
4 楼ttfwind(橙子)回复于 2004-12-04 20:57:20 得分 0
我的第一个方法是这样的 服务器还是总体负责所有的表
只不过每个店里面都有关于自己信息的副表 (我上面可能是不是没说清楚啊)
因为这样在你频繁插入删除的时候 可以减轻带宽 而是在合适的时候把发生的改变一次性的告诉服务器 因为服务器有不是每时每刻都需要查询 是不是阿?
Top
5 楼ZengMuAnSha(曾牧暗鲨)回复于 2004-12-04 21:34:37 得分 0
问题是需求会增长的!!
原来你是局域网,10M网宽,网络环境较好,用户数量较少。
现在你的软件需求环境改变了,远程,2M专线,60个用户。
采用C/S架构能胜能,但是你要注意将来还会改变的,也许要在其他地区开发分店 采用ADSL上网呢!!
建议你采用3层架构 ADO COM+ Midas
李维1999年出了 Midas ADOCom+ 两本书介绍如何做三层Top
6 楼jemyzhang(妙狐)回复于 2004-12-04 22:53:08 得分 0
在大数据量的情况下才能发挥出sql server 的优势,所以可以将各门店的库存,销售放在两个表中。
同时设计一个门店信息表和药物信息表。
门店信息表:
SID int
name varchar
...
药物信息:
PID int
name varchar
inprice money
outprice money
...
将SID 和 PID与 库存表、销售表对应Top
7 楼TryToday(超口术生命体)回复于 2004-12-04 23:32:00 得分 0
经过讨论,主要方式和需求是:
1、总店有总店库存,各分店有分店库存。总店直接入库,各分店只能从总店调拨入库。
2、分店大部分工作是从自己的库存销售,但是销售的时候由于各种需要很可能要看某药品其他所有店的库存。(库存量不一定特别即时)
初步结论:
1、各分店如果有服务器,把各个分店的服务器中的表联合到一起查询编程难以做到,所以只有总部一台高性能sqlserver2000服务器,分店里全是客户机。
2、销售记录、调库记录等记录查询不是很多,所有分店合为一张表这样编程较容易实现。
3、总重要的是库存:数据量大、读写频繁,现在有两种方式备选:一是每个门店单独一个库存表,能提高速度,但是查询所有门店数据编程较困难。二是所有门店加上总店用一个库存表,编程较容易,但是速度不知道能否忍受。
大家有好的建议吗?
Top
8 楼TryToday(超口术生命体)回复于 2004-12-06 13:23:58 得分 0
?Top
9 楼zjsyw(冰狗)回复于 2004-12-06 15:14:40 得分 0
使用三层的C/S模式,非常适合你,使用这种模式后,你可以不使用专线,只要上互联网就行了,我做了一套书店管理软件,可以帮单位省好多银子,当然有专线也行。Top
10 楼TryToday(超口术生命体)回复于 2004-12-08 19:45:44 得分 0
三层c/s模式没有用过,很想学啊,望楼上指点一些教材。
现在准备库存全存到一张表上,效果如何只能看情况了,因为时间紧,不能再做太大的改动。Top
11 楼zjsyw(冰狗)回复于 2004-12-10 17:41:19 得分 0
几句话怎么说呢。介绍几本书吧《C++BUILDER网络编程核心技术》《C++BUILDER高级应用开发指南》《C++BUILDER6彻底研究》里面对多层结构有些介绍,不是很详细,但大致够了。Top
12 楼PPower(月亮光光,照地堂)回复于 2004-12-10 19:01:58 得分 0
注意一下,每次取回的數據不要多於100條。多了就慢得要命。Top
13 楼TYEROU()回复于 2004-12-10 19:47:41 得分 0
1G的rm! free!
www.8cd.cnTop
14 楼TryToday(超口术生命体)回复于 2004-12-10 20:27:48 得分 0
zjsyw(冰狗):
为什么使用三层的C/S模式非常适合呢? 三层比两层有什么优点?
你的书店系统用户比较少,业务量也少,但是医药系统不一样,忙的时候几乎马不停蹄update,成吗?Top
15 楼zjsyw(冰狗)回复于 2004-12-11 15:44:03 得分 0
TryToday(超口术生命体) :
多层的好处相对于两层我认为主要体现在三个方面:
1、客户端的维护十分简单,几乎是免维护的,而且可以开发成瘦客户端;
2、多了应用层之后数据库连接减少了,两层中的连接过多造成数据库服务器可用资源降低的问题没了,当多层结构中客户端增加过多时,可以通过增加应用服务器,来解决问题,很方便;
3、对于地域分散的企业,两层数据库的数据交换问题是比较头疼的,对于多层结构就很简单了,如果使用套接字连接,只要总部有固定的IP,就是在美国开个门市,和在同一个大楼里没什么两样。
顺便说一下,我做的书店管理,用户是不多(8个门市),所以我的应用服务器使用了一台PIII550,128M的普通联想PC。每个门市包月ADSL(512K),一个月100元,数据实时传输,一般业务部门一次分书给门市100个图书品种,门市客户端子线程接收全部数据5-6秒钟就完成了,头一次安装时,50万个图书品种基础书目数据传过去,我记不清多少时间了,因为数据的传输是子线程来完成的,但也非常快。Top
16 楼TryToday(超口术生命体)回复于 2004-12-11 22:44:49 得分 0
zjsyw(冰狗):
以后还得多多请教啊,您的联系方式呢?我的:
miaohui010@sina.com QQ:9694725 http://www.newseasoft.com
对了,如果服务器没有固定ip地址,比如拨号,有没有办法?Top
17 楼zjsyw(冰狗)回复于 2004-12-12 10:47:03 得分 30
如果总部没有固定的IP地址给中间层应用服务器,可以使用速达软件的办法,就是你得找一台服务器,它有固定的IP地址,比如你的WEB服务器,在上面编写一个SERVICE小软件来交换IP地址,当你应用服务器启动的时候先访问这个IP,把自己的IP记录上去,别的异地客户端也访问那固定IP取得你应用服务器的IP地址。Top




