Планирование базы данных

Я пытаюсь реализовать базу данных аптечных препаратов. Я думал об этом следующим образом:

В схеме базы данных будет таблица коммерческих препаратов под названием "Drug", другая таблица для компании-производителя под названием "Company" и третья таблица, реализующая название и дозу научного препарата под названием "Scientific_Drug". Таблица "Препарат" будет иметь отношение "многие-ко-многим" с научным препаратом. Фактически, несколько записей о научном препарате могут быть включены в одну запись о коммерческом препарате. Я использую Python django models.Model для реализации этой схемы базы данных. Я задаюсь вопросом, как реализовать множественные записи названий научных препаратов при условии, что многие коммерческие препараты могут иметь переменное количество записей научных препаратов. Есть ли способ сделать это в Python django?

Мой основной код выглядит следующим образом:

class Company(models.Model):
    name = models.CharField(max_length=70, null=False)
    launch_date = models.DateField('Launch Date')
    history = models.TextField(max_length=10000)

    def __str__(self):
        return self.name


class Scientific_Drug(models.Model):
    name = models.CharField(max_length=70, null=False)
    dose = models.PositiveIntegerField(null=False)

    def __str__(self):
        return self.name


class Drug(models.Model):
    drug_name = models.CharField(max_length=255, blank=False)
    drug_dose = models.DecimalField("Dose", decimal_places=2)
    drug_form = models.CharField(max_length=255, blank=False)
    drug_price = models.DecimalField("Price", decimal_places=2)
    release_date = models.DateField('Release Date')
    expiry_date = models.DateField("Expiry Date")
    ingredient = models.ManyToManyField(Scientific_Drug)
    company = models.ForeignKey(Company, on_delete=models.CASCADE)

    def __str__(self):
        return self.drug_name

Заранее спасибо.

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