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