2013-08-08 4 views
1

Я работаю над приложением с Проект, Пользователь и Группа модели. Проект имеет много групп, Пользователь принадлежит ко многим группам через модель Членство. У меня есть два варианта:Должен ли я использовать полиморфизм для моделирования этих отношений?

  1. При создании проекта создается группа по умолчанию. Любое лицо, участвующее в этом проекте, автоматически добавляется к нему.

  2. Сделать членство полиморфным, чтобы пользователи могли быть участником проекта и группой в проекте.

Оба подхода имеют более широкие последствия: в игру войдут другие модели, такие как: «Файл», «Почта» и «Задача».

Если я поеду на вариант 2, эти модели также должны быть полиморфными. Но это немного упростит ситуацию.

Если я перейду к варианту 2, я предопределяю полиморфизм, но все становится немного сложнее. Например, поиск проектов пользователей означает, что я должен запрашивать группы пользователей, а затем проекты, связанные с этими группами, а затем убедиться, что проекты уникальны.

Кто-нибудь сталкивался с подобной ситуацией, какие-либо советы или дополнительные плюсы и минусы для любого подхода?

Я действительно предпочел бы группировать группы в целом, но это требование для разрешений, чтобы разделить контент на основе группы.

ответ

0

Я думаю, лучший вариант будет создать группу по умолчанию, согу

1 - Тогда вы можете пойти с четкой структурой проектов - имеет много групп группы -> имеет много пользователей и т.д.,

2 - вы будете иметь гибкость manging групп легко

3 - Ваша основная структура проста, следовательно, лет вниз по линии, легко расширить

4 - вы ослабляя работу поток пользователя путем автоматизации одного шага. Я лично считаю, что если вы позволите пользователю быстро и быстро работать, они найдут u r систему, удобную для пользователя.

Смежные вопросы