Скажем, у вас есть стол
collection
id
name
и таблица
collection_collaborator
id
user_id
Вы добавили бы owner_id в родительскую таблицу?
collection
id
name
owner_id
Вы бы добавили is_owner в дочернюю таблицу?
collection_collaborator
id
name
is_owner
На этот вопрос нет черного и белого ответа - это действительно зависит от ваших бизнес-требований и ваших собственных предпочтений.
Существует одно различие между двумя подходами: поле owner_id
указывает, что коллекция может иметь только одного владельца, а флаг is_owner
позволяет нескольким владельцам для одной коллекции.
Другим решающим фактором могут быть отчеты по данным. Если у вас есть поле owner_id
, вы можете отобразить информацию о владельце коллекции без необходимости вступать в таблицу соавторов. Если у вас много отчетов, где вам нужна информация о владельце, но не нужна какая-либо другая информация о сотрудниках, то поле owner_id
может увеличить производительность ваших запросов.