Создание базы данных с двумя таблицами, связанными между собой по ключу

Усложним задачу. Изменим созданную в предыдущем примере базу данных таким образом, чтобы, список всех названий улиц города существовал в отдельной таблице. Каждая запись в таблице имеет свой уникальный код. Тогда в таблице адресов вместо поля Название улицы будет поле Код улицы. Таблицы будут связаны между собой по полю Код улицы. При выполнении запроса к семантической базе данных будет происходить выборка значений из таблицы address, название улицы будет выбираться из таблицы street.

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

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

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

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

Шаг 2. Создание таблицы Список улиц

Создайте таблицу со списком улиц и указанными ниже полями аналогично примеру Создание базы данных с одной таблицей, шаг 2. Назовите эту таблицу street. Так как данная таблица не будет напрямую связана с объектами карты, то в ней поле Sys - поле связи с картой не нужно, поэтому просто выделите его и удалите с помощью кнопки Удалить поле.

Таблица должна иметь следующие поля:

Поле Cod_street сделайте ключевым, для этого сделайте щелчок левой кнопки мыши в столбце Ключ.

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

Создание таблицы

Рисунок 625. Создание таблицы


Шаг 3. Изменение таблицы Адреса

Для изменения таблицы выполните следующие действия:

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

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

  3. В окне редактирования таблицы нажмите кнопку Добавить поле и в свободной строке введите имя поля Cod_street, тип выберите короткое целое.

  4. Сохраните таблицу с тем же именем (кнопка Сохранить).

  5. Закройте окно с помощью кнопки Закрыть.

Шаг 4. Создание запроса к семантической БД

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

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

  3. В появившемся диалоговом окне Добавить таблицы выделите таблицу address, нажмите кнопку Добавить, а затем таблицу street и снова нажмите кнопку Добавить.

  4. Закройте это окно кнопкой Закрыть.

  5. Проведите связь между полем Cod_street таблицы Address и Cod_Street таблицы Street. Для этого щелкните мышью на названии поля Cod_street таблицы Address и, удерживая нажатой левую кнопку мыши, протяните связь к полю Cod_Street таблицы Street (тип установленной связи — один к одному).

  6. Добавьте в список полей запроса следующие поля (для добавления поля сделайте по нему двойной щелчок левой кнопкой мыши):

    Из таблицы Street:

    • Name_street.

    Из таблицы Address:

    • Num_house;

    • Type_house;

    • Hight_house.

  7. Задайте пользовательские названия полей запроса. Для этого выделите поле в списке полей запроса и нажмите кнопку (свойства). В открывшемся диалоговом окне в строке пользовательское имя введите пользовательское название полей такие, как указано на рисунке ниже. Нажмите кнопку ОК.

  8. Выберите поле связи с картой, для этого в строке поле связи нажмите кнопку Выбор… и в открывшемся списке выделите поле Sys из таблицы аddress и нажмите кнопку ОК.

    Создание запроса

    Рисунок 626. Создание запроса


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

  10. Задайте имя запроса, например Две таблицы, нажмите кнопку ОК.

  11. Закройте окно создания запроса с помощью кнопки Закрыть.

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

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

  1. В окне редактора баз данных для объектов типа Запрос в строке Основной запрос выберите из ниспадающего списка нужный запрос (Две таблицы).

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

    Рисунок 627. Выбор основного запроса


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

Шаг 6. Открытие окна семантической информации

Для проверки правильности создания и подключения базы данных надо открыть окно семантической информации:

  1. На панели навигации нажмите кнопку информация .

  2. Сделайте активным слой Дома или нажмите и не отпускайте на клавиатуре клавиши Ctrl и Shift.

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

    Окно семантической информации

    Рисунок 628. Окно семантической информации


    В строке Название улицы кнопка открывает окно подчиненной таблицы.

    Окно подчиненной таблицы

    Рисунок 629. Окно подчиненной таблицы