Можно ли определить поле, которое автоматически увеличивается в пределах значения внешнего ключа? - PullRequest
0 голосов
/ 28 февраля 2020

Можно ли определить поле, которое автоматически увеличивается в пределах значения внешнего ключа?

Например, если мы определим модели компании и отдела в Django:

class Company(models.Model):
    name = models.CharField(max_length=25)

class Department(models.Model):
    company = models.ForeignKey(Company)
    department_number = ...?   # should start from 1 for each company

в чистой реализации SQL пара (company_id, Department_number) будет составным первичным ключом.

Я ищу решения в Django или SQL, которые безопасны (с точки зрения нескольких процессов создание отделов одновременно) и эффективно. Я использую MySQL, но сравнение с другими базами данных также приветствуется.

1 Ответ

1 голос
/ 02 марта 2020

На SQL сервере можно использовать TRIGGER , чтобы сделать что-то дополнительное после вставки. Триггер безопасен для транзакций и может быть отменен. Другой способ - использовать промежуточную таблицу последовательностей .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...