Составной первичный ключ Django
Проблема с academic_plan_subject. В MS SQL я мог так сделать, насколько помню, чтобы первичные ключи из других таблицы могли образовать составной первичный в третьей. Можно ли в Django так сделать? И стоит ли?) Это нарисовано в dbdesign.online
Ответы (1 шт):
Не совсем Вас понимаю. MS SQL - СУБД, Django - Framework. ORM Django умеет работать с различными СУБД по умолчанию это LiteSQL, postgresSQL, MySQL но можно и с MS SQL.
pip install django-mssql-backend
Ни кто Вам не запрещает работать с СУБД в обход ORM, хоть это и не желательно. Единственное чего Вам не стоит трогать это поле ID во всех таблицах, иначе слетит админка.
В Django не зависимо от СУБД (по умолчанию) PrimoryKey всегда ID, как я и говорил это нужно для работы панели администратора. К сожалению Вы не описали задачу которую решаете, но я предполагаю что вариант с ForegenKey должен помочь.
#models.py
class academic_plan_subject(models.Model):
class Meta:
constraints = [models.UniqueConstraint(fields=[id_plan,id_subject], name='some_unique_name']
id_plan=models.ForeignKey(academic_plan,on_delete=models.PROTECT)
id_subject=models.ForeignKey(subject,on_delete=models.PROTECT)
