Django: создание отношений "многие-ко-многим" без создания промежуточной таблицы
У меня есть набор таблиц, которые я превратил в модели django. Таблицы были спроектированы не очень хорошо, и я не могу их изменить, и это создает проблемы для отношений "один ко многим", которые я пытаюсь установить в своем коде.
Модели
class Owner(models.Model):
owner_uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, unique=True) # Field name made lowercase.
email = models.TextField(max_length=200, unique=True)
is_active = models.BooleanField( blank=True, null=True) # Field name made lowercase.
owned_apps_whistic = models.ManyToManyField("Applications", through="ApplicationOwnerXRef", related_name="owners_whistic")
#owned_apps_group = models.ManyToManyField("Applications", through="BusinessUnitOwnerXref", related_name="owners_group")
class Applications(models.Model):
application_id = models.UUIDField(primary_key=True)
url = models.TextField(blank=True, null=True)
name = models.TextField(blank=True, null=True)
service = models.TextField(blank=True, null=True)
status = models.TextField(blank=True, null=True)
created_date = models.TextField(blank=True, null=True)
description = models.TextField(blank=True, null=True)
business_unit_name = models.TextField(blank=True, null=True)
class BusinessUnitOwnerXref(models.Model):
id = models.AutoField(primary_key=True)
owner_uuid = models.ForeignKey(ApplicationOwner, models.DO_NOTHING, to_field="owner_uuid", db_column = "owner_uuid")
business_unit_name = models.TextField(max_length=100, null=True)
Владельцы могут владеть приложениями, владея группой, которой принадлежит приложение, указанное в таблице BusinessUnitOwnerXref.
Таблица Application и BusinessUnitOwnerXref обе имеют столбец business_unit_name , и могут быть непосредственно объединены
Я не могу использовать внешний ключ, потому что столбец BusinessUnitOwnerXref.business_unit_name не является уникальным.
TLDR, Есть ли способ создать отношения "многие ко многим" между приложениями и владельцами через BusinessUnitOwnerXref, не изменяя существующие таблицы и не позволяя django создавать еще одну таблицу?