以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  外部表同步到内部表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158081)

--  作者:fntfgz
--  发布时间:2020/11/7 9:58:00
--  外部表同步到内部表
需求:老师,我发布完一个项目,为了适应能力更强,联网和不联网的条件下都可以使用,我想在联网的时候把外部表同步到内部表中,程序查询,统计,修改数据都是在内部表,我考虑这样有两个好处,1、不联网的时候也可以用,2,查询的速度要快一些

问题,我的外部表的结构因为数据的调整可能有变化,需要每次同步之前检查内部表的结构与外部表的结构是否一样,如果不一样,就删除内部表,重新建一个与之结构相同的内部表然后在同步。

请问老师,要完成这个功能怎么才最合理,望给出一些相关知识点的链接或代码


还有一个小问题,在咱们论坛里,想查找标题 既包含“内部表” 又包含“外部表” 这两个关键字的怎么查询?我用“内部表 外部表”一个也查不出来,好像标题只能有一个关键字,知道老师们忙,能在论坛上找到的,尽量不麻烦老师,请老师告知多关键字如何搜索,查询
[此贴子已经被作者于2020/11/7 10:21:33编辑过]

--  作者:有点蓝
--  发布时间:2020/11/7 10:39:00
--  
这种功能很麻烦。

表结构还好判断,遍历所有列判断名称和列类型即可
内部表的数据修改后要更新回外部数据库,数据的更新就麻烦多了。
如果程序只有一个人使用还好,每个表增加一个更新时间列,根据时间判断勾选数据即可。
如果是多人使用的,还要考虑到脏数据问题,简单的说,用户a往表A更新了数据,用户b也往表A更新了数据,那么最后表A是要保留用户a修改的数据还是用户b修改的数据?不管是保留谁的,其它用户的数据都会无效,用户就会有疑惑,录入的数据如果无效我录他干嘛!特别是数据还有关联到多个表的时候,甚至涉及到权限控制的时候....想想就是一团乱。

所以这种情况要根据具体业务功能设计好一套可行的数据更新策略才行,这个就远远超出我的能力之外了。

目前论坛仅支持单关键字查询,老论坛了代码无法改

--  作者:fntfgz
--  发布时间:2020/11/7 11:18:00
--  
老师,用户更新的本地表,不上传到远程数据库,只是远程到本地就好,只是单向的

现在的问题:如果结构有变,我想删除内部表,然后根据外部表的结构重建建一个内部表,
我用下面的方法重建内部表
http://www.foxtable.com/help/index.htm?page=2122.htm

老师,这个内部表的结构建好之后,如何把外部表的数据放到这个内部表来呢?

我的思路有问题吗?还可以优化一下不?

--  作者:有点蓝
--  发布时间:2020/11/7 11:33:00
--  
参考:http://www.foxtable.com/webhelp/topics/0680.htm

没看出来这个用法的意义:如果用户需要修改本地表的数据,但是假设结构有变,这个表就会被删除重建,那么之前录入的数据就打水漂了。就算不需要修改数据,数据少还好,随着数据的越来越多,甚至  一个表几百万几千万行的数据也全部加载进来?首先内部表是放不了多少数据的,其次数据导入保存的过程也是很耗时间的。

--  作者:fntfgz
--  发布时间:2020/11/7 11:41:00
--  
老师,这个数据是不需要修改的,用户只是查询用,我来更新服务端的数据,因为有些用户是不联网的,他只是在能联网的时候,下载一下数据,就可以在没有网络的情况下用了
我想必须把这个数据下载到本地,数据也就二、三万行,只同步一次,就可以用很长时间,不需要每次打开项目都做这个动作