以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于MSSQL主键引发的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=54311)

--  作者:alans
--  发布时间:2014/7/25 14:21:00
--  [求助]关于MSSQL主键引发的问题
各位前辈好,我是小白,典型的,如有白痴问题请包涵!先谢过了!
好久前就看到Foxtable了,觉得管理数据不错,但因为不懂编程也就没有学习了。
最近因为单位的餐饮软件界面不友好,操作繁琐不直观,管理员很是吐槽,我也去帮忙了几次。
萌发了帮忙改进的念头,也顺便看看是否能学好Foxtable。(闲话……别嫌!)

问题是这样:不知道基于什么原因的考虑,原系统数据库所有表均没有设置主键。这也是因为我用Foxtable链接数据库后,尝试打开表才知道的。
保险起见,我备份了数据库,并在我个人电脑上安装了mssql,将备份的数据库还原至我的电脑。用Foxtable链接后,在几张表中设置了主键(_Identify,自动增量)。
目前打开并无问题,但我不知道改动了原表的设计(即增加了一列自动增量主键)会不会对原系统有影响?(现在只改动我个人电脑,非真实服务器)

简单描述下该餐饮系统的框架吧。系统采用的是C/S架构,服务器端定时采集各餐饮终端的消费或充值数据,下发黑名单等……,采集的数据存储指定的mssql数据库中,
该服务器端基本写死了,没有什么设置,说白了,就是硬件和数据库中间的连接件。应该可以这么理解吧。

而我所要改进的是管理端,即对数据库中的数据进行查询、统计汇总等操作端。Foxtable对没有主键的表只能用查询表查看,不能修改保存。而我肯定需要能保存,
只能在表中增加主键。我的问题是,我增加了主键(自动增量型的,非手工主键)是否会影响该系统的服务端对数据库的操作?会还是不会?

不知道怎么表述,只能累述……希望各位能看懂!

--  作者:Bin
--  发布时间:2014/7/25 14:23:00
--  
对原系统应该没有影响.



--  作者:有点甜
--  发布时间:2014/7/25 14:26:00
--  

保险做法:

 

 新建一个项目,新建一个数据库,脱离原来的数据库。

 

 你在项目里面引用新旧两个数据库,实现之间的数据同步。

 

简单一点的做法:

 

 加入_Identify列,自动递增。一般不会和原系统有冲突。如果有冲突,单独把原表某一列设置成主键也可以。

 

 最后不行,就用保险的做法


--  作者:alans
--  发布时间:2014/7/25 14:31:00
--  
以下是引用Bin在2014-7-25 14:23:00的发言:
对原系统应该没有影响.

我也针对平时使用时发生的各种故障考虑过,增加该列按理是不会影响服务器端对数据库的操作的。无奈这个是正式使用的系统,擅动的后果很严重,如有人在这方面有经验能明确告知就最好了!!!感谢Bin大神的即时回复!谢谢!


--  作者:alans
--  发布时间:2014/7/25 14:35:00
--  
谢谢 有点甜 大神!该系统源表没有一列符合做主键的特性图片点击可在新窗口打开查看图片点击可在新窗口打开查看
实在是不明白为什么该数据库没有表存在主键?!原设计者基于什么考虑呢……或者他用不着所以没必要?图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2014/7/25 14:37:00
--  
 回复5楼,增加一列,对一个系统是不会有影响的,除非它的代码写得很烂很烂很烂很烂。
--  作者:alans
--  发布时间:2014/7/25 14:46:00
--  
图片点击可在新窗口打开查看 回复6楼,谢谢!
我有点可以肯定的是,管理端软件与服务端软件没有任何依赖关系。
我不敢保证人家写的烂不烂,其管理端是delphi写的,在月度查询分类统计时,耗时很长,基本在5-10分钟左右,可那仅仅才不足一千条上下的记录啊。
我查了下,他需要在数据库的一个表中提取出这一千上下的记录,然后分类统计。而数据中该表目前总记录条数为1万9千多。
管理端软件在数据库服务器本地与局域网中其他联网PC执行效率基本一致,所以不认为是与网速有关。
[此贴子已经被作者于2014-7-25 14:50:03编辑过]

--  作者:alans
--  发布时间:2014/7/25 14:54:00
--  
谢谢两位,我知道该怎么做了!图片点击可在新窗口打开查看