Как представить сводную таблицу (с дополнительными данными) в datomi c? - PullRequest
0 голосов
/ 06 апреля 2020

Я понимаю, что нам не нужны обычные сводные таблицы в datomi c, потому что мы можем просто выбрать одну сторону отношения и добавить туда атрибут :db.cardinality/many (обязательно смоделировать отношение в одном только направление ).

Следующая вещь, с которой я сталкиваюсь при конвертации из sql, - это сводная таблица, в которой также хранится атрибут отношения, например:

series_subscriptions
  user_id    int
  series_id  int
  expires_at timestamp

Я был интересно, какие варианты моделировать это в datomi c. Я заметил, что в схеме есть некоторые вещи, для которых я еще не понимаю причину или подходящее использование, такие как составные кортежи, компоненты.

Один из вариантов, хотя и поднимает стержень к своей собственной сущности, чтобы он мог обрабатывать дополнительный атрибут:

:series-subscription/user       ; ref, one
:series-subscription/series     ; ref, one
:series-subscription/timestamp  ; timestamp, one

Но вышеприведенное кажется немного неправильным. Выполнение этого означает, что в журнале регистрации данных соединение больше не будет неявным, что может привести к потере. Интересно, есть ли лучшие варианты?

1 Ответ

0 голосов
/ 24 апреля 2020

Гетерогенные кортежи являются более лаконичным способом достижения этой цели с момента их введения в июле 2019 года.

См. Ответ на этот вопрос .

Обновление за июль 2019 года для Datomi c содержал множество различных функций одновременно, и его использование еще недостаточно документировано в Интернете, хотя в документах это объясняется (для объяснения этого не требуется много - это простой, но, возможно, не простой). Обратите внимание, что именно гетерогенные кортежи, которые решают проблему здесь, будут работать, чтобы игнорировать другие типы кортежей, чтобы начать работу для этого варианта использования.

...