database - 创建一个数据结构来相互比较 300 个元素

标签 database data-structures matrix

首先,我正在研究大约 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/

相关文章:

c++ - 未排序矩阵搜索算法

iPhone - 直接从数据库中提取数据到 tableview 单元格?

SQL Server 选择加入?

php - 无法连接到其他服务器上的 phpmyadmin

algorithm - 使用隐式 key 进行 Treap

r - 将日期数据帧转换为R中的时差对称矩阵

R/Index 下三角向量(按成对索引)

java - 如何将长字符串转换为数组或数据库字段?

sorting - 堆排序:为什么不使用 "Soft Heap"来提高性能?

algorithm - 查找给定字符串的所有(英文单词)子字符串