首先,我正在研究大约 300 个元素之间的交互。每个元素都将与所有其他元素和自身相互作用。在少数情况下,会发生 react ,我会标记该 react 。
因为这基本上是一个包含大约 90,000 种可能交互的矩阵,所以我想用代码管理这些数据,这样我就可以轻松地测试交互,但是我希望在测试完所有交互之前进行测试。由于我显然不会一次完成所有这些,因此数据必须以某种方式存储在磁盘上。
这是我的问题:理想的数据结构设计是什么?我通常使用关系数据库进行数据存储,这个特殊问题似乎与 RDB 不太吻合。如果我不清楚,请告诉我。
最佳答案
这里的 RDBMS 没有错:重要的不是获取数据,而是事后报告,而且从您的描述中无法判断您的需求是什么。
就存储 300x300 结果而言:您只需要记录 react ,而不是每次测试。那,以及您在测试中完成矩阵的程度。
请注意,90k 条记录并不是真正的数据量,因此您可以根据需要保留所有记录。
编辑:您只需要几个表:
Elements
--------
ItemID
... -- whatever identifying info you need
Crossref
--------
ItemX int
ItemY int
Results -- whatever data you need
它的值(value):如果元组 {ItemX, ItemY} 等价于 {ItemY, ItemX},那么你不是在做 300x300 比较,你在做 (300 + 299 + 298 + ... + 1 ) = 45150。
关于database - 创建一个数据结构来相互比较 300 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4017856/