#php #mysql
#php #mysql
Вопрос:
Я разрабатываю веб-портал, который будет хранить требования к работе, такие как опыт, зарплата и т.д., В базе данных, И Всякий раз, когда какой-либо пользователь (новый / старый) соответствует этим критериям, задание должно отображать его на своей панели мониторинга после входа в систему. Мои столбцы в разделе сотрудники — возраст, город, отрасль, семейное положение.
Итак, когда администратор опубликует задания, он определит критерии, по которым пользователь сможет это увидеть. Например Возраст от 20-30 лет, город только Мумбаи вроде этого.
Как мне эффективно хранить эту информацию в базе данных.
Я использую PHP / MySQL.
Комментарии:
1. Возможно, вы получите больше ответов, если объясните различные рассмотренные вами варианты. Затем мы можем рассказать вам о плюсах / минусах каждого из них.
2. Этот вопрос слишком расплывчатый. Прочитайте книгу о том, как разрабатывать приложения с помощью php / mysql
3. Эх, похоже, он тоже не голосует и не принимает ответы.
Ответ №1:
В идеале вы должны создать таблицу с пользовательскими:
- Уникальный идентификатор
- Имя
- Семейное положение
- Город
- Возраст
Создайте вторую таблицу для сопряжения industry и UUID, вот так:
- Уникальный идентификатор
- Отрасль
Это делается для того, чтобы данный пользователь мог принадлежать более чем к одной отрасли.
В-третьих, создайте таблицу для сопоставления идентификаторов пользователей и опыта:
- Уникальный идентификатор
- Позиция
- Отрасль
- Дата начала
- Дата окончания
Поскольку отрасль и опыт — это данные, которыми данный пользователь может обладать в произвольном количестве, вам нужно абстрагировать данные в его собственные таблицы. Не пытайтесь представлять всю эту информацию в одной таблице — это решение, которое плохо масштабируется для одного работодателя.
Я также хотел бы отметить, что если ваше приложение будет развернуто в Соединенных Штатах и нескольких других странах, для работодателей фактически незаконно проводить дискриминацию по возрасту и семейному положению. Я предполагаю, что к вам это не относится, но это так.
Ответ №2:
с точки зрения ускорения вашего поиска, самое важное, что вы захотите сделать, — это убедиться, что вы проиндексировали столбцы, по которым будете выполнять поиск.
Так, например, если вы хотите выполнить поиск, основанный на дате начала кого-либо:
например: выберите * из имени таблицы, где start_date > ‘некоторая дата’;
тогда очень важно, чтобы вы проиндексировали столбец start_date в таблице ‘tablename’.
Помимо проверки ортогональности ваших таблиц при выборе наилучшего способа настройки вашей базы данных, вы захотите спросить себя, какие вопросы вы будете задавать своей базе данных, и спроектировать свои таблицы с учетом этих вопросов.