Сохранение критериев задания в mysql

#php #mysql

#php #mysql

Вопрос:

Я разрабатываю веб-портал, который будет хранить требования к работе, такие как опыт, зарплата и т.д., В базе данных, И Всякий раз, когда какой-либо пользователь (новый / старый) соответствует этим критериям, задание должно отображать его на своей панели мониторинга после входа в систему. Мои столбцы в разделе сотрудники — возраст, город, отрасль, семейное положение.

Итак, когда администратор опубликует задания, он определит критерии, по которым пользователь сможет это увидеть. Например Возраст от 20-30 лет, город только Мумбаи вроде этого.

Как мне эффективно хранить эту информацию в базе данных.

Я использую PHP / MySQL.

Комментарии:

1. Возможно, вы получите больше ответов, если объясните различные рассмотренные вами варианты. Затем мы можем рассказать вам о плюсах / минусах каждого из них.

2. Этот вопрос слишком расплывчатый. Прочитайте книгу о том, как разрабатывать приложения с помощью php / mysql

3. Эх, похоже, он тоже не голосует и не принимает ответы.

Ответ №1:

В идеале вы должны создать таблицу с пользовательскими:

  • Уникальный идентификатор
  • Имя
  • Семейное положение
  • Город
  • Возраст

Создайте вторую таблицу для сопряжения industry и UUID, вот так:

  • Уникальный идентификатор
  • Отрасль

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

В-третьих, создайте таблицу для сопоставления идентификаторов пользователей и опыта:

  • Уникальный идентификатор
  • Позиция
  • Отрасль
  • Дата начала
  • Дата окончания

Поскольку отрасль и опыт — это данные, которыми данный пользователь может обладать в произвольном количестве, вам нужно абстрагировать данные в его собственные таблицы. Не пытайтесь представлять всю эту информацию в одной таблице — это решение, которое плохо масштабируется для одного работодателя.

Я также хотел бы отметить, что если ваше приложение будет развернуто в Соединенных Штатах и нескольких других странах, для работодателей фактически незаконно проводить дискриминацию по возрасту и семейному положению. Я предполагаю, что к вам это не относится, но это так.

Ответ №2:

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

Так, например, если вы хотите выполнить поиск, основанный на дате начала кого-либо:

например: выберите * из имени таблицы, где start_date > ‘некоторая дата’;

тогда очень важно, чтобы вы проиндексировали столбец start_date в таблице ‘tablename’.

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