Общий принцип работы запросов фильтра к базе данных, или Старшина перед строем солдат

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

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

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

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>