я имею пользователь стол, и мне нужно расширить его автор а также партнер данные. Должен ли я поставить дополнительные столбцы в той же таблице или создать еще 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 учебный класс.
Имеет ли это смысл или я должен просто поместить эти столбцы в пользователь Таблица ?
Оба подхода действительны и часто используются.
Теория нормализации реляционной схемы не позволила бы поместить все данные в одну таблицу из соображений согласованности данных. Это будет способствовать многостоловому подходу.
В подходе с одной таблицей вы получите много пустых (нулевых) полей в каждой записи таблицы.
Однако при использовании нескольких таблиц вам может потребоваться выполнить одно или два объединения, чтобы выяснить, является ли запись партнером или автором. Следовательно, с точки зрения производительности, решение с одной таблицей является предпочтительным.
В обоих случаях вы можете включить дополнительное поле, например, «recordType», для пользователя, чтобы быстро и легко различать различные типы записей. Это даст наилучшую производительность во время выполнения.
Других решений пока нет …