В проекте, над которым я работаю, есть два типа учетных записей: "people
" и "companies
".
У меня есть одна таблица "users
" со всеми учетными записями и только основной информацией, необходимой для входа в систему (электронная почта, пароль и т. Д.), И две другие таблицы "user_profiles
" (обычные люди) и "company_profiles
"(компании), которые содержат более конкретные столбцы для каждого типа, обе таблицы связаны с общей таблицей" users
"через столбец" profile_user_id
".
Но всякий раз, когда я хочу перечислить пользователей, которые могут быть как людьми, так и компаниями, я использую:
"select user_id, user_type, concat_ws('', concat_ws(' ', user_profiles.profile_first_name, user_profiles.profile_last_name), company_profiles.profile_company_name) as user_fullname
".
Когда я перечисляю этих пользователей, я знаю, являются ли они людьми или компаниями по "user_type
".
Является ли мой подход с использованием concat_ws
правильным (оптимальным)? Я сделал это вместо select
-ing каждые *_name
, чтобы избежать возврата большего количества столбцов, чем необходимо.
Спасибо
РЕДАКТИРОВАТЬ: запрос выше продолжается как: from users left join user_profiles on ... left join company_profiles on ...