全部,
请注意,为简单起见,我在下面创建了以下场景来帮助解决这个问题,这与我遇到的实际问题非常接近。
有一个名为“ State ”的表,出于所有意图和目的,该表包含一个与另一个名为“ Stock ”的表相关的值,该表包含有关对象的数据。
例如
+-----+-------+
|TABLE| VALUE |
+-----+-------+
|Stock| Ball |
+-----+-------+
|State|Instock|
+-----+-------+
所以从上面的例子来看,根据 State 表,Stock 表中名为“Ball”的记录是“Instock”。
然而,为了得出这个结论,我需要分析另一个名为 Items 的表,它是现实世界中存在多少该库存的物理项目的真实值所以如果有可用的项目或没有可用的项目,这将影响 State 表中的值与该 Stock 记录相关的内容。
现在要分析它并修改状态,我需要从 State 表开始并通过 Stock 表导航到 Items 表,如下所示
State ----> Stock ----> Items
现在这个表中有很多记录,至少每天都需要监控。
我以前从未从事过这样的事情,但是我的直觉告诉我,我可以获取所有表并将它们作为数据对象加载到我的分析应用程序中,并在内存中虚拟地形成关系。
所以我需要做的就是在开始时进行一个大查询并将所有 SQL 结果加载到内存中。这是可能的还是明智的?
但是,我考虑的另一个选项只是像这样遍历每个记录。按顺序执行许多事务。
State record 1 ----> Stock record 1 ----> Analyse Items records --> Update State record 1
State record 2 ----> Stock record 2 ----> Analyse Items records --> Updates State record 2
.......
这些方法中的任何一种都是一个不错的选择,还是有另一种方法可以做到这一点?
约束
- Oracle 11g 数据库
- 无法更改架构或表
- 考虑将Java或Perl用于此分析应用程序
- 此应用程序将是外部的,并且与数据库不在同一物理位置
伪代码
Get all state records in State table
Find their related records in Stock table
Find all child records of Stock table in Items table
Modify state of current record
Move onto next record set.
因此,我可以用于解决此问题的任何指导或特定方法/功能都将受到欢迎。
请不要给我一个解决方案,我只要求在正确的方向上轻轻一点:)