Использовать MySQL Relation один-к-одному или нет?

я имею пользователь стол, и мне нужно расширить его автор а также партнер данные. Должен ли я поставить дополнительные столбцы в той же таблице или создать еще 2 таблицы (user_author а также user_partner) с один к одному отношения?

Например, таблицы и столбцы упрощены.

пользователь

id
name
email
password
avatar
is_active

user_author

user_id => user.id (PK, UNQ)
description
amount_per_text
max_text
is_active

user_partner

user_id => user.id (PK, UNQ)
name
description
image_logo
is_active

Пользователь не может быть ни автором, ни партнером. И тогда я могу иметь такие классы, как User.php для обычных пользователей, UserPartner.php а также UserAuthor.php который расширяется User.php учебный класс.

Имеет ли это смысл или я должен просто поместить эти столбцы в пользователь Таблица ?

0

Решение

Оба подхода действительны и часто используются.

Теория нормализации реляционной схемы не позволила бы поместить все данные в одну таблицу из соображений согласованности данных. Это будет способствовать многостоловому подходу.

В подходе с одной таблицей вы получите много пустых (нулевых) полей в каждой записи таблицы.

Однако при использовании нескольких таблиц вам может потребоваться выполнить одно или два объединения, чтобы выяснить, является ли запись партнером или автором. Следовательно, с точки зрения производительности, решение с одной таблицей является предпочтительным.

В обоих случаях вы можете включить дополнительное поле, например, «recordType», для пользователя, чтобы быстро и легко различать различные типы записей. Это даст наилучшую производительность во время выполнения.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]