目前在一个项目里面,遇到了一点小问题。
在两个数据基本信息表中, 字段类似, 字段中还包括,开始时间,结束时间,单价!其中开始时间是主键之一,当然主键还有比如产品ID等。现在的要求是: 根据开始时间和结束时间,用B表的信息来更新A表的信息。操作纪录的方式,只有更新和插入,不能有删除操作。详细的解释是,如果,A表和B表的时间段内有交集的话,则根据B表的信息(开始时间,结束时间)将A表的纪录,或者更新(note:开始时间是主键),或者插入。最终要保证,在A表中,都已经被更新为相同时间段的B表信息,并且,相关联到的B表信息也都被插入到A表中。类似如下:
pattern 1:
Table A: -----------------
Table B: _________________action:
1, update ----- (因为,开始时间是主键,所以,更新结束时间)
2, insert ____________
3, insert _____ (插入B表纪录的信息)
当然,,类似的还有很多pattern。 比如:Table A: ------------------------
Table B: ---- 当然,因为数据库中的数据不是一条,因为,需要处理的时候需要循环。
而且, 很多情况下会出现如下情况:Table A: ------------------------
Table B: ---- ------
或者
Table A: ------------------------
Table B: ---- ------- -----现在情况下,我使用 Table B的纪录集进行循环。请教如何处理, 谢谢!
在两个数据基本信息表中, 字段类似, 字段中还包括,开始时间,结束时间,单价!其中开始时间是主键之一,当然主键还有比如产品ID等。现在的要求是: 根据开始时间和结束时间,用B表的信息来更新A表的信息。操作纪录的方式,只有更新和插入,不能有删除操作。详细的解释是,如果,A表和B表的时间段内有交集的话,则根据B表的信息(开始时间,结束时间)将A表的纪录,或者更新(note:开始时间是主键),或者插入。最终要保证,在A表中,都已经被更新为相同时间段的B表信息,并且,相关联到的B表信息也都被插入到A表中。类似如下:
pattern 1:
Table A: -----------------
Table B: _________________action:
1, update ----- (因为,开始时间是主键,所以,更新结束时间)
2, insert ____________
3, insert _____ (插入B表纪录的信息)
当然,,类似的还有很多pattern。 比如:Table A: ------------------------
Table B: ---- 当然,因为数据库中的数据不是一条,因为,需要处理的时候需要循环。
而且, 很多情况下会出现如下情况:Table A: ------------------------
Table B: ---- ------
或者
Table A: ------------------------
Table B: ---- ------- -----现在情况下,我使用 Table B的纪录集进行循环。请教如何处理, 谢谢!
既然是两个表进行更新,则一定有一个主键是相同的,比如产品ID,或者操作ID,我按照正常人的思维能力,觉得,这些不用介绍!2: 这个问题,其实也很容易解决,只不过现在没有找到更好的方法而已,想在这里找些比较成熟的思想改造一下。 目前我的做法是 按照9种不同的情况进行处理。 因为有些细节问题不是很好描述,所以,我省略了若干。3: 在这里,我并不是寻找详细的解决方法,只是为了寻找一个合适的思路。现在这部分程序大概是1500行左右,我希望可以精简到1000行。当然,其中有很多私有方法,我在题目里面并没有涉及4: 我觉得CSDNer里面,大部分人的思维能力都可以,不用说很多大家都默认的东西,谁知???? 哎!! 心痛啊!
包括各位“表达能力和思维能力“都剧牛的人。 btw:原始的文档太长,加上我的表达能力有限,造成各位心里不快,在此,致歉!