在python中存储和查询序列

时间:2018-05-11 16:58:04

标签: python django python-3.x postgresql django-models

假设我们将Django与Postgres数据库一起使用。

我想存储一系列数据,如下所示:

  • 记录1:1, 2, 3, 4, 5
  • 记录2:7, 8, 2, 3, 1, 9, 6
  • 记录3:4, 4, 3, 2

有几点需要注意:

  • 序列将始终是一维的。
  • 序列可以有多余的值。
  • 序列可以是可变长度。

首先是这样;我想将此信息存储在数据库中。我有很多方法可以实现这一点,所以让我们看一下我的查询要求。

假设我有一个查询序列1, 2, 3。现在我想确定与此序列匹配的序列。匹配将满足以下情况之一:

  • 案例A:序列按顺序包含查询1, 2, 3
    • 在示例中,记录1与此匹配。
  • 案例B:序列以任何顺序包含查询1, 2, 3的组件。
    • 在示例中,记录1和记录2匹配。
  • 案例C:序列以任何顺序包含查询1, 2, 3的组件的部分
    • 在该示例中,所有记录都与此匹配。

在一个完美的世界中,我希望将结果排列为:

  • 记录1排在第一位(因为它匹配案例A,我们的最高优先级匹配)
  • 记录2排在第二位(因为它与案例B匹配,我们的中等优先级匹配)

  • 记录3排在最后(因为它匹配案例C,我们的低优先级匹配)

任何人都可以推荐一种方法,库或概念来存储这些数据,以便可以相对快速地进行查询吗?

1 个答案:

答案 0 :(得分:1)

如果您正在使用django和postgres,请查看ArrayField。它们是可查询的。