Что лучше: список foreign keys в сущности или сводная таблица?
Всем привет.
Разрабатываю простенький проект для базы резюме.
Есть сущности юзер и навыки. У каждого юзера может быть примерно до 100 навыков. Юзеров может быть десятки, сотни тысяч.
Как лучше сделать - сводную таблицу или просто перечислить айдишники навыков в сущности юзер, а потом парсить эту "строку"?
Ломаю голову:
сводная таблица может оказаться очень громоздской, записи в ней будут расти как на дрожжах, ведь у каждого юзера будет минимум 3 навыка, а максимум вообще около 100
во втором случае будет проблемно искать пользователей по навыку: придётся каждую запись о пользователе проверять парсингом столбца "навыки" на наличие заданного в поиске
могу чего-то не знать, возможно есть третий вариант
буду очень благодарен
использую связку doctrine - mysql. может есть какое-то решение на другом стеке?
Если вы сделаете через перечисление id, как вы собираетесь делать поиск по пользователям с определённым навыком?
У вас стандартная связь "многие ко многим". Делать её надо через таблицу связи. Все описанные вами проблемы для таблицы связи - надуманные. Громоздкой эта таблица не окажется. Там два столбца, таблица легко переварит много миллионов записей. И выборки будут быстрее парсинга по столбцу в тысячи раз.
Думай Головой:
Самая простая реализация - это таблица связи, проще уже некуда.
Вариант со списком id усложнит код и добавит вам головной боли при поддержке и расширении проекта. Не изобретайте колесо.