以文本方式查看主题 - 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 -- 谢谢两位,我知道该怎么做了! |