Добрый день,
Помогите определить тип связей в базе данных.
Имеются две таблицы: "Engine" и "Aircraft_fleet".
У Aircraft может быть только два Engine (каждый из них разный), конкретный Engine может принадлежать только одному Aircraft.
Нужно каким-то образом связать поля Engine_1_Ser_Num и Engine_2_Ser_Num в Aircraft с полем Ser_Num таблицы Engine.
Сложность в том, что в таблице Engine для каждого Ser_Num всегда множество записей:
Какой тип связи будет самым удачным?
class Engine(models.Model):
Ser_Num = models.PositiveIntegerField()
Flight_Num = models.CharField(max_length=80)
Flight_Date = models.DateField()
Oil_Quantity_Departure = models.DecimalField(max_digits=5, decimal_places=2)
Oil_Quantity_Arrival = models.DecimalField(max_digits=5, decimal_places=2)
Oil_Temperature_Departure = models.DecimalField(max_digits=5, decimal_places=2)
Oil_Temperature_Arrival = models.DecimalField(max_digits=5, decimal_places=2)
class Aircraft_fleet(models.Model):
Aircraft_type = models.CharField(max_length=16)
Aircraft_Serial_Number = models.CharField(max_length=16)
Engine_1_Ser_Num = models.ForeignKey('Engine', related_name='Engine_1', on_delete=models.PROTECT)
Engine_2_Ser_Num = models.ForeignKey('Engine', related_name='Engine_2', on_delete=models.PROTECT)
Ошибка при типе связи "один к многим" (как сделано сейчас):
django.db.utils.IntegrityError: The row in table 'oilcons_aircraft_fleet' with primary key '1' has an invalid foreign key: oilcons_aircraft_fleet.Engine
_2_Ser_Num_id contains a value '193262' that does not have a corresponding value in oilcons_engine.id.