Как использовать отношения ManyToMany для отслеживания членства пользователей? - PullRequest
0 голосов
/ 09 сентября 2011

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

  1. история участия пользователя в некоторых группах (дата присоединения, дата выхода)
  2. список текущих групп пользователей (в порядке присоединения) для определения его текущего статуса
  3. список пользователей, которые участвовали в этой группе в данный период времени

Я предполагаю, что это ManyToMany (или уродливый вид OneToMany), но не могу понять, как его использовать; нужен минимальный пример, желательно - для моделей Джанго.

Кроме того, какие проблемы согласованности ожидаются, когда необходимо удалить группу / пользователя?

1 Ответ

1 голос
/ 09 сентября 2011
  • Участники
  • группа
  • groupmembers

Groupmembers - это ваш стол присоединения, в котором есть такие вещи как:

  • участник (один участник имеет много записей членов группы)
  • группа (одна группа имеет много записей членов группы)
  • дата создания
  • удалить дату (оставьте ноль, пока не применимо)

Итак, для ваших требований:

  1. запрос группы участников с группой и сортировка по дате
  2. запрос группы участников с членом (сортировка по дате создания)
  3. запрос группы с группой и удалить ноль (или внутри диапазона дат)
...