ФОН:
Я разрабатываю функцию поиска, которая позволяет пользователям искать сразу три объекта: классы, студенческие организации и события по имени.
MySQL 5.6 и Innodb будут использоваться на относительно небольшом сервере.
ТАБЛИЦЫ:
Поиск
entity_id (tiny_int)
entity_type (tiny_int)
full_name (varchar(255))
Index (Primary) -> entity_id, entity_type
Index (FULL TEXT INDEX) -> full_name
Класс (entity_type = 1)
class_id
ALL OTHER COLUMNS...
События (entity_type = 2)
event_id
ALL OTHER COLUMNS
Организации (entity_type = 3)
org_id
ALL OTHER COLUMNS
ВОПРОС:
Уместно ли индексировать имя 3, казалось бы, похожих, но разных наборов данных (класс, событие, организация) в одну таблицу поиска с помощью entity_id, entity_type первичного ключа?
Как мне выполнить соединение таблицы поиска с таблицами Class, Events, Orgs? Есть ли условное выражение, которое я могу сделать, используя entity_type?
Любая помощь или руководство приветствуется.