我目前正在为手持设备创建Windows应用程序(WM 6.0,CF 2.0,sqlce 3.5),只有在连接到扩展坞时才从服务器提取数据(所有重要数据都在手持设备上维护/更改)回来并停靠与服务器同步)。这些数据类似于UPS可以做的事情,它管理从一个位置到一个位置的物品的拾取和下降,并记录这些“交易”发生的时间。
最初,掌上电脑有几个源表(pickups
和dropoffs
)和一些验证表。在给定的拾取或下降期间,我试图找出沿此多步骤过程移动数据的最佳方法。
我目前正在寻找......
首先根据共同特征从拾取中选择项目的子集,假设包裹的颜色为“蓝色”。所以我选择所有“蓝色”包并将它们插入temppickups
表。
然后用户必须确定需要拾取的所有蓝色包裹(temppickups
中的项目)哪些需要在他所在的位置拾取,因此他选择“ “取件网站”以及temppickups
中的所有相应项目都已插入tempsitepickups
。
然后,用户从列表中选择他想要提取的所有项目(来自tempsitepickups
)并运行报告以确认完整性。
pickedUpItems
,添加了列来记录交付时间和内容),以便更新服务器(而不必从原始表创建一个select语句来查找更新的记录) 现在,我可以让原始表在插入传递时间之前将其他列填充为NULL,然后使用IS NOT NULL作为限制器,仅同步更新的记录。但是,我的趋势是,当数据从其父表中更改时,它将被放入一个新表(这只发生3次= 3个新表),直到它到达目标表(当它执行所有新表之间时)原始目的地和目的地都被清空,以便下次接送或下车。
这是处理这种数据跟踪的最佳方式,因为它在应用程序中被操纵了吗?你的想法会有所帮助。 谢谢!
*如果您想澄清这个假设的某些方面,请告诉我。
答案 0 :(得分:1)
立刻想到的是只有一个表,并且有一个“状态”列,例如。项目的当前状态(选择的项目,选择的站点,拾取的项目等)。 您引用的其他列可以放在单独的表中。
但另一方面,拥有单独的表可以简化和加快SQL查询,特别是如果你有很多记录。
只是一些想法......