Дизайн класса Родословная, в Джанго

Я работаю над веб-приложением "Семейное древо" с Django (для которого я новичок) и решаю, как спроектировать класс Family Tree, чтобы пользователи могли авторизоваться для просмотра / редактирования только определенных деревьев.

У меня есть два абстрактных мета-класса: сущность и отношение.

Субъектом может быть Персона, или даже Группа или Событие. Отношения могут быть Родитель, Брат, Партнер и т. Д.

Отношение имеет "from" и "to" ForeignKeys, каждый из которых отображается на одну сущность. Поскольку абстракция мне понравилась больше, чем это предложение: Структура данных Семейного древа, я решил хранить личную информацию только в подклассе Person сущности. Доступ к отношениям осуществляется через "связанное имя". Если код требуется, пожалуйста, дайте мне знать. Мне нужно разрешение, чтобы опубликовать это.

Кажется, что есть два основных способа проектирования класса Family Tree:

  1. Связи ManyToOne из экземпляра Family Tree со всеми сущностями или со всеми связями или обоими.

  2. Отношение OneToOne к корневому объекту или отношение, из которого остальная часть дерева распаковывается во время сеанса.

Я не думал ни о каких минусах второго метода, который, кажется, ускорит процесс.

Плюсы / минусы для обоих будет принята с благодарностью, а также ваш личный выбор.

Также:

  • Джанго-специфичные идеи реализации.
  • Может быть, назначение разрешений на основе только FamilyTrees не очень хорошая идея?

Заранее спасибо!

0 ответов

Другие вопросы по тегам