Дизайн класса Родословная, в Джанго
Я работаю над веб-приложением "Семейное древо" с Django (для которого я новичок) и решаю, как спроектировать класс Family Tree, чтобы пользователи могли авторизоваться для просмотра / редактирования только определенных деревьев.
У меня есть два абстрактных мета-класса: сущность и отношение.
Субъектом может быть Персона, или даже Группа или Событие. Отношения могут быть Родитель, Брат, Партнер и т. Д.
Отношение имеет "from" и "to" ForeignKeys, каждый из которых отображается на одну сущность. Поскольку абстракция мне понравилась больше, чем это предложение: Структура данных Семейного древа, я решил хранить личную информацию только в подклассе Person сущности. Доступ к отношениям осуществляется через "связанное имя". Если код требуется, пожалуйста, дайте мне знать. Мне нужно разрешение, чтобы опубликовать это.
Кажется, что есть два основных способа проектирования класса Family Tree:
Связи ManyToOne из экземпляра Family Tree со всеми сущностями или со всеми связями или обоими.
Отношение OneToOne к корневому объекту или отношение, из которого остальная часть дерева распаковывается во время сеанса.
Я не думал ни о каких минусах второго метода, который, кажется, ускорит процесс.
Плюсы / минусы для обоих будет принята с благодарностью, а также ваш личный выбор.
Также:
- Джанго-специфичные идеи реализации.
- Может быть, назначение разрешений на основе только FamilyTrees не очень хорошая идея?
Заранее спасибо!