Создание описателя «Адресные точки»

Рассмотрим пример базы данных, связывающей объекты слоя Дома с семантической информацией – адресом здания. Допустим, что адрес дома задается названием улицы или проспекта, типом («улица», «проспект», «набережная» и т.д.) и номером дома. Базовой таблицей для задания адреса будет таблица address.db, связывающая идентификаторы элементов слоя (поле Sys) с кодом адреса и номером дома. Таблица addrcode.db будет связывать код адреса с парой идентификаторов названия улицы и типа, соответственно названия («Невский», «Гороховая», «Сенная» и т.д.) будут храниться в таблице street.db, а типы («проспект», «улица», «площадь» и т.д.) — в таблице strtype.db. Нам же нужно получить для запрашиваемого элемента слоя информацию в виде названия, типа и номера дома.

Шаг 1. Открытие описателя базы данных

  1. Откройте структуру слоя Дома, для этого выберите пункт меню Слой|Структура слоя или нажмите на панели инструментов кнопку (слой при этом НЕ должен быть редактируемым).

  2. В открывшемся диалоговом окне Структура слоя в дереве слева выделите пункт Базы данных.

  3. Справа в открывшейся вкладке выделите созданную ранее базу База по домам, нажмите кнопку Конструктор....

Шаг 2. Редактирование таблицы Address.db

  1. В редакторе баз данных выделите таблицу address.

  2. Сделайте щелчок правой кнопкой мыши и в открывшемся контекстом меню выберите пункт Реструктурировать.

  3. Нажмите кнопку Добавить поле и в свободной строке введите имя поле Addr_code, установите для него тип - Короткое целое.

  4. Точно так же как в пункте 3 добавьте поле Bld_no, тип поля установите так же короткое целое.

  5. Для сохранения таблицы нажмите кнопку Сохранить.

  6. Закройте окно изменения таблицы – кнопка Закрыть.

Шаг 3. Создание таблиц addrcode.db и strtype.db

  1. Нажмите кнопку Создать....

  2. Задайте имя таблицы addrcode, нажмите Сохранить.

  3. Поле Sys в данной таблице не нужно, удалите его.

  4. Добавьте поля.

    • Addr_code – тип короткое целое;

    • Street_code – тип короткое целое;

    • Type_code – тип короткое целое.

  5. Сохраните таблицу, закройте окно.

  6. Точно таким же образом создайте и сохраните таблицу strtype с полями.

    • Street_type – тип короткое целое;

    • Name – тип строковое.

Шаг 4. Создание запроса

  1. В редакторе баз данных нажмите кнопку Запросы.

  2. Нажмите кнопку Создать....

  3. Добавьте в запрос таблицы address, addrcode, street и strtype.

  4. Проведите связь между полями таблиц.

    • Address.AddrCode->AddrCode.Addr_Code;

    • AddrCode.Street_Code->Street.Code_Street;

    • AddrCode.Type_Code->StrType.Street_Type.

  5. Из выбранных таблиц наберите список полей, участвующих в запросе (из таблицы Street - поле Name_street, из таблицы Strtype - поле Name, из таблицы Addres - поле Bld_No).

  6. Задайте пользовательские названия полей запроса.

  7. Выберите поле связи с картой, (для рассматриваемого примера - поле Sys из таблицы Address).

  8. Для сохранения запроса нажмите кнопку Сохранить....

  9. Задайте имя запроса, например Адресные точки, закройте окно создания запроса.

Диалоговое окно Запрос

Рисунок 635. Диалоговое окно Запрос


Шаг 5. Выбор основного запроса

  1. В окне описателя для объектов типа Запрос в строке Основной запрос выберите из ниспадающего списка запрос Адресные точки.

  2. Сохраните описатель – кнопка Сохранить и закройте окно редактора баз данных.