У меня есть несколько таблиц: company
, customer
, company_has_customer
и transaction
.Таблица внешних контактов MySQL
company_has_customer
- таблица соединений многих-ко-многим, в которой используются PK company
и customer
как ее ПК.
Практически во всех ситуациях по всей базе данных используются как company
, так и customer
, для идентификации записи (например, в таблице transaction
).
Мой вопрос, должен ли я создать внешний ключ в transaction
таблице, чтобы указать на company_has_customer
или двух таблиц (company
, customer
) в индивидуальном порядке?
Я считаю, что было бы лучше для ссылочной целостности отправлять эти FK через company_has_customer
, чтобы гарантировать, что записи transaction
вставляются только в том случае, если есть отношения между компанией и клиентом. Существуют ли какие-либо стандарты или соглашения для поддержки моей догадки?
SO не подходит для самоутверждаемых обсуждений дизайна. – Barmar
Спасибо, Barmar, я изменил вопрос, чтобы быть менее самоуверенным. Я действительно ищу лучших практик в подобной ситуации, но у меня сильные судороги. –
Возможно, вам повезет больше на dba.stackexchange.com. – Barmar