Database design 匹配,根据每个标准的相关性进行排名

Database design 匹配,根据每个标准的相关性进行排名,database-design,ranking,matching,Database Design,Ranking,Matching,我有一个不断增长的数据库,其中包含: 需求表(多个标准) 报价表(多个标准) 条件可以是字符串(例如:国家名称)、布尔值、数字等 我想找到所有或多或少匹配的需求报价(有点像工作银行、配对等) 如果表中没有太多行,我将按如下方式计算: 对于每个需求,通过平均每个标准的相关性来计算每个报价的匹配相关性 但是对于一个重要的数据库来说,这会花费太多的时间,不是吗 您推荐什么解决方案?我会按照您描述的方式来做,但要使用滚动缓存机制和一些索引 找出创作的相关性,然后看看它是如何进行的。如果频率较低(

我有一个不断增长的数据库,其中包含:

  • 需求表(多个标准)
  • 报价表(多个标准)
条件可以是字符串(例如:国家名称)、布尔值、数字等

我想找到所有或多或少匹配的需求报价(有点像工作银行、配对等)

如果表中没有太多行,我将按如下方式计算:

  • 对于每个需求,通过平均每个标准的相关性来计算每个报价的匹配相关性
但是对于一个重要的数据库来说,这会花费太多的时间,不是吗


您推荐什么解决方案?

我会按照您描述的方式来做,但要使用滚动缓存机制和一些索引


找出创作的相关性,然后看看它是如何进行的。如果频率较低(高读、低写),则可以进行增量添加。如果两端都很高,您可以将其拆分为两个数据库。。。处理其中一个的更新,然后定期将后处理的数据推送到另一个,这是默认的读取源。

要从2010年6月24日开始扩展答案,请在联接表中捕获预先计算的相关性分数(请求键、提供键、相关性分数)。请注意,此联接表可以保存计数(需求)*计数(提供)记录;谨慎的做法是只存储相关性得分大于某个阈值的记录

该方法在数据插入时的计算复杂度为O(n)。如果需求(类似于报价)的特征空间假设相同报价的高相关性得分的两个需求在其特征空间内也“接近”,则可以将该复杂性降低到O(log(n)):

  • 对需求的比较特征执行K-最近邻分析(并分别针对报价),并将K值限制为数据集的近似对数(n)
  • 计算聚类的代表性特征向量之间的匹配相关性,并将其存储在数据库表中
  • 插入时,测量新记录与该类型的每个群集之间的“距离”,并将群集的外键存储在新记录上
  • 在搜索与需求匹配的报价时,请遵循从需求到其集群到最相关报价集群再到单个报价的链接

这将以特殊性换取速度。通过将需求样本与每个报价进行比较,并根据相关性排序,验证初始假设的准确性;遍历已排序的报价集,计算在集群搜索结果集中找到的报价数量,然后再查找缺少的报价。通过对该测试进行主观分析,您将了解群集的成本。

非常感谢您的回答和建议AJ。这不是一个理想的情况,但在计算中很少出现这种情况!希望你成功。