MySql таблица с потенциально * очень * много столбцов - PullRequest
0 голосов
/ 07 апреля 2019

Друг, который является рекрутером для инженеров-программистов, хочет, чтобы я создал для него приложение.

Он хочет иметь возможность искать резюме кандидатов на основе навыков.

Как вы можетепредставьте, что потенциально есть сотни, а возможно и тысячи навыков.

Как лучше всего представить кандидата в таблице?Я думаю skill_1, skill_2, skill_n и т. Д., Но где-то там есть кандидат с более чем n навыками.

Также возможно, что будет добавлено больше навыковв базу данных в будущем.

Итак, как лучше представить навыки кандидата?


[Обновление] для @zohar, вот грубый первый проход в схеме.Есть комментарии?

enter image description here

1 Ответ

5 голосов
/ 07 апреля 2019

Вам нужно три таблицы (как минимум):

Одна таблица для кандидатов , которая будет содержать все данные, такие как имя, контактная информация, резюме (или ссылка на него)) и все другие соответствующие сведения.

Одна таблица для навыков - которая будет содержать название навыка и, возможно, краткое описание (если это уместно)

и одну таблицусвязать кандидатов с навыками - candidToSkills - которые будут иметь отношение 1 ко многим с обеими таблицами - и первичный ключ, который представляет собой комбинацию идентификатора кандидата и идентификатора навыка.
Это реляционныйспособ создания отношения «многие ко многим».
В качестве бонуса вы также можете добавить столбец для уровня навыка - начинающий, средний, опытный, опытный и т. д.

Возможно, вы также захотите добавить таблицудля вакансий и другой таблицы, чтобы связать это с таблицей навыков, чтобы вы могли легко найти наиболее подходящего кандидата на работу на основе требуемых навыков.(но, пожалуйста, обратите внимание, что навыки - не единственное необходимое совпадение - другие пункты для сопоставления - это географическое положение, ожидаемая зарплата и т. д.).

...