Подскажите по правильности выбора архитектуры БД под задачу. Смысл следующий
Есть модель Vendors - по сути это коммерческая организация их может быть много
class Vendors(models.Model):
name...
country ....
Есть глобальная модель Modules - в ней описаны 10 вариантов существующих модулей. Можно делать модуль не активным глобально, тогда к нему нет доступа.
class Modules(models.Model):
MODULES_NAME = (
("Sourcing", "Sourcing"), ("SA", "SA"),
("SXM", "SXM"), ("CLM", "CLM"),
.....
)
module_name = models.CharField(max_length=50, choices=MODULES_NAME)
active = models.BooleanField(default=True)
Таблица VendorModules которая связывает Vendor и Modules с возможность делать не активным конкретный модуль или несколько модулей относительно вендора. Т.е отключать модуль не на глобальном уровне.
class VendorModule(models.Model):
vendor = models.OneToOneField('Vendors', on_delete=models.CASCADE, primary_key=True)
active = models.BooleanField(default=True)
Модель Element - содержит информацию относящуюся к конкретному модулю конкретного вендора.
class Element(models.Model):
info1...
info2.....
....
В итоге добавляется в систему новый вендор, ассоциирует себя с некоторыми модулями -> вносит инфу по этим модулям - > может отключать у себя ассоциацию с некоторыми модулями. Как правильно сделать связи между моделями?