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 создавать еще одну таблицу?

Вернуться на верх