Foxtable(狐表)用户栏目专家坐堂 → 动态加载引申的思考


  共有4265人关注过本帖树形打印复制链接

主题:动态加载引申的思考

帅哥哟,离线,有人找我吗?
powermannico
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:241 积分:2618 威望:0 精华:0 注册:2013/4/2 22:30:00
动态加载引申的思考  发帖心情 Post By:2013/7/19 2:20:00 [只看该作者]

      foxtable不论内部表、外部表,默认都是加载全部数据。我想因为关联表的存在,让foxtable去决定从数据库动态加载所需要的数据也是件很难或者也许是不可能的事,虽然提供了动态加载,但是对于关联表某些情况下,二次开发也是或有难度或繁琐的。待项目上线运行以后短期内没问题,用个两三年以后这还真是件现在就要考虑的大事。

      比如:父表a,子表b,通过单号关联,子表b有列"进度"是通过表达式:Parent(ab关联表).处理状态 得到的,那么子表b动态加载了部分数据,如果想正确得到"进度"列,就必须在加载子表b的同时加载关联的父表a数据(当然父表a默认加载所有数据就没有这样的问题了,这里我说的都要动态去加载)。那么我是不是只能这样做:遍历动态加载来的子表b的单号列,合成条件"[单号] =单号1 Or [单号]=单号2... Or [单号]=单号n",然后用此条件去动态加载父表a呢,这不科学啊。

      我看可行的方法1.动态加载由用户指定的时间段数据;2.在特定行业只对特定时间段的数据进行操作的情况,默认只动态加载近3个月的数据(统计可以用后台统计);3.对于历史数据没什么用处的,比如对上年数据导出备份后,清空上年数据,不使用动态加载,默认全部加载也就一年的数据量。

        现在还没有模拟十几二十万条记录的情况,想知道以现在PC硬件条件,4G/8G都是内存标配容量了,默认全部加载是不是启动也是非常的耗时耗资源<!--[if gte mso 9]> <![endif]--><!--[if !mso]> <![endif]--><!--[if gte mso 10]> <![endif]-->

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/19 8:36:00 [只看该作者]

可以放弃狐表关联. 通过狐表关联实现的功能,同样可以不用狐表关联 使用代码实现的.

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/7/19 8:52:00 [只看该作者]

    这个怕什么 我几十张表 只有一个字段是关联(但是没有用关联表),也是靠条件加载使用的..  就算是关联表,也可以利用条件,同步加载关联表.

 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/7/19 9:17:00 [只看该作者]

我看过的数据库的数据,要么没有提到关联功能,要么就直接说明不要使用关联功能。

这个功能是带给了方便,但会埋下很多隐患。

一对多关系,是最好的。多对多关系是应该尽量规避的

如果你得表关联键值设计的不好的话,就比如,你怎么能设计一个由子表相关条件去加载父表的数据那?

你只要用查询表把这两个表组合了,自然而然就能加载你想要的数据了。

所以,关联功能能不用尽量不用。


 回到顶部