Это общий вопрос базы данных, который не относится только к Django. Поскольку я использую Django, я спрашиваю об этом в этом контексте. Предположим, у меня есть три модели:
class ModelA(models.Model)
name = models.CharField(max_length=255)
class ModelB(models.Model)
a = models.ForeignKey(ModelA, on_delete=models.CASCADE)
class ModelC(models.Model)
a = models.ForeignKey(ModelA, on_delete=models.CASCADE)
bs = models.ManyToManyField(ModelB, blank=True)
Я бы хотел, чтобы ModelC
имел ссылку на многие ModelB
с. Я хотел бы, чтобы было ограничение, которое позволяет ModelC
иметь ModelB
, если они имеют общий ModelA
. Есть ли способ правильно спроектировать это на уровне базы данных или это должно быть сделано логически в других частях системы?