enter image description here

Я делаю дизайн базы данных для удобства пользователей со специальностями. Пользователь может иметь опыт работы в месяц / год по каждой специальности (см. Приложенные изображения). Я планирую создать таблицу со списком всех специальностей, таблицу, в которой будет перечислен опыт за годы, и другую таблицу, в которой будет перечислен опыт за несколько месяцев и, наконец, еще одна таблица, в которой будет указано, что «этот пользователь имеет такое количество лет / месяцев опыта работы по данной специальности».

enter image description here

enter image description here

enter image description here

enter image description here

Но таблица для опыта - это месяцы, а другая таблица для опыта в годах звучит излишне, но я не могу придумать другого способа сделать это. Мой дизайн в порядке?

0
Inno the tech geek 12 Ноя 2020 в 11:04

2 ответа

Лучший ответ

Вот одна идея:

User_ID Skill_ID Experience unit 
1.       101        7.      Year
1.       102.       4.      Month
2.       101.       9.      Month 
1
Strawberry 12 Ноя 2020 в 09:07

Вы можете просто создать таблицу candidate_experience со следующими столбцами:

  • candidate_id, который указывает идентификатор кандидата
  • specialty обозначает название специальности
  • in_years указывает количество стажа в годах
  • in_months указывает количество стажировок в месяцах

Вы можете просто сделать одну таблицу. Без необходимости делать 4 отдельные таблицы.

P.S : вам может потребоваться создать составной первичный ключ (candidate_id , specialty), чтобы избежать дублирования одной и той же специальности для одного и того же кандидата.

^^ Это, конечно, если вы уверены, что не существует нескольких специальностей с одинаковым названием. В противном случае вы можете создать отдельную таблицу специальностей, как вы это делали, и заменить specialty на specialty_id в таблице candidate_experience

0
Tarekas 12 Ноя 2020 в 08:19