Хранение и запрос последовательности в Python - PullRequest
0 голосов
/ 11 мая 2018

Допустим, мы используем 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 идет первой (потому что она соответствует случаю А, нашему совпадению с самым высоким приоритетом)
  • Запись 2 идет второй (потому что она соответствует случаю В, нашему совпадению со средним приоритетом)

  • Запись 3 идет последней (поскольку она соответствует случаю C, нашему совпадению с низким приоритетом)

Может кто-нибудь порекомендовать метод, библиотеку или концепцию дляхранить эти данные таким образом, чтобы запросы могли выполняться относительно быстро?

1 Ответ

0 голосов
/ 11 мая 2018

Если вы используете django и postgres, посмотрите на ArrayField . Они могут быть запрошены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...