2011-09-09 2 views
0

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

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

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

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

ответ

1
  • членов
  • группа
  • groupmembers

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

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

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

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