В базе данных интернет магазина есть четыре сущности (обычный пользователь, администратор, поставщик и курьер). У всех у них разные свойства, поэтому было решено для каждого типа юзера создать свою таблицу в базе.
При вводе логина и пароля юзер ищется во всех четырех таблицах. И теперь мне необходимо понимать в какой конкретно таблицы был найден юзер. Чтобы показать ему определенную страницу.
Четыре разные формы входа на сайте сделать нельзя по ТЗ (прихоть клиента)! Можно конечно в каждой таблице юзеров добавить столбец (например privileges) который будет принимать значение 1, 2, 3 или 4 в зависимости от типа юзера (обычный пользователь, администратор, поставщик и курьер). И так я могу определить какой тип юзера хочет зайти на сайт. Но может быть есть другой способ просто определить название таблицы в которой была найдена строка, если запрос был по нескольким таблица одновременно? (так сказать более элегантный способ)
оно же не само магически ищется..
у тебя или 4 запроса к разным таблицам, тут вообще все понятно;
или как бы один запрос с union, где можно в каждый select в ручную добавить название таблицы
Конечно, но вот если запрос объединяет в себе четыре таблицы, а в итоге выдается только одна запись могу ли я определить из какой конкретно таблицы выдана запись? Вот в чём заключается мой вопрос.
Делить юзеров на 4 таблицы это неправильно (и с точки зрения проектирования базы, и с точки зрения поддержки). Основные свойства юзеров можно хранить в одной таблице, а дополнительные свойства - в другой, с привязкой по юзер айди к первой.