【问题标题】:Organize 3d array equivivalent in sql table在 sql 表中组织等效的 3d 数组
【发布时间】:2014-08-12 18:45:35
【问题描述】:

在我的 C# 程序中,我正在解析一个网站,我想计算两个或三个元素的最频繁序列。

假设我有 10 个变体。

可以是1-2-24-5-11-3-4 == 3-1-4

现在我正在考虑 int 数组 ([,,]),但我想存储和分析信息,所以我决定创建一个 PostgreSQL 数据库。

现在我正在考虑通过 sql 表组织等效 3d 数组的最佳和最简单的方法,您能给我一些建议吗?

【问题讨论】:

  • 你的问题是什么?
  • 如果 [1,3,4] 与 [3,1,4] 相同,则数组将不起作用。此外,如果数字范围很大,则数组会消耗大量内存。听起来您需要执行一些操作,例如获取序列、对数字进行排序、通过在示例中添加破折号来转换为字符串。那么这就是哈希表或数据库的关键。

标签: c# sql postgresql


【解决方案1】:

具有四列的表可用于保存 3D 数组可以保存的相同数据。前三列可以是数组索引(比如 x、y 和 z),第四列可以保存数据值;数据[x,y,z]。

【讨论】:

  • 使用此模型,您将如何处理相同索引值以不同顺序出现的情况? (请注意,OP 声明 1-3-4 == 3-1-4)
  • 正确,并且是一个有效点。我的回答只提供了一些关于......“通过 sql 表组织等效 3d 数组的最佳和最简单的方法”的问题。一个有四列的表当然可以做到这一点。也就是说,我不确定 3D 数组是否会是我解决此类序列计数问题的首选数据结构。
  • 好吧,我再等一会儿,也许有人给我提供了更少的综合方法来解决 SQL 问题,但我想你的变体将是答案。如果我的数学是正确的,我将需要 10^3 行来实现所有索引(实际上我有 >100 个变体),所以也许我需要更多地考虑如何更好地存储和分析序列。
  • @s1ddok - “变体”是指序列中的数字吗?比如1、3、4等?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-22
  • 2013-08-11
  • 2019-05-13
  • 2011-04-23
  • 2022-10-22
相关资源
最近更新 更多