< Назад | Далее >

Урок 2.4: Применение функции автоматического создания ключей

В предыдущем уроке были настроены правила навигации, обеспечивающие ввод уникального ИД при добавлении объявления. Такой подход может вызвать значительные затруднения в работе пользователей сайта, поскольку уникальные ИД можно найти только экспериментальным путем. В данном уроке вы настроите автоматическое создание ключей, чтобы база данных автоматически присваивала уникальный номер каждой новой записи базы данных.
Об этой задаче

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

Перед применением функции автоматического создания ключей рекомендуется ознакомиться с некоторыми особенностями ее работы. Для применения автоматической генерации ключей необходимо, чтобы в базе данных существовала таблица, специально предназначенная для этой цели. Эта таблица состоит из двух столбцов:
  • Столбец приращения содержит доступные ключи. Из этого столбца база данных извлекает уникальные ключи.
  • Столбец идентификаторов представляет собой набор чисел с одним экземпляром единицы. В соответствии с этим столбцом база данных выбирает ключ из столбца приращения. Столбец идентификаторов является первичным ключом таблицы создания ключей.

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

Ниже приведен пример таблицы создания ключей. Какой ключ будет выбран базой данных? Ответ приведен после таблицы.
Табл. 1. Таблица создания ключей
Столбец идентификаторов Столбец приращения
3 78
4 3
1 65
2 12
Следующий доступный ключ - 65, поскольку в той же строке столбца идентификаторов указано значение 1.

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

Таким образом, для работы функции автоматического создания ключей необходима таблица, состоящая из двух столбцов - столбца первичного ключа (столбца идентификаторов), а также столбца для хранения следующего доступного ключа. Для инициализации такой таблицы достаточно одной записи, в которой в столбце идентификаторов будет указано значение 1, а в столбце приращения - первый доступный ключ. После настройки описанной таблицы функция автоматического создания ключей готова к работе.

Настройка автоматического создания ключей

Об этой задаче
В примере базы данных для данного учебника имеется таблицы генерации ключей с именем KEYS. В двух ее столбцах, как описано выше, содержатся новые ИД для всех записей. В данной процедуре вы настроите реляционную запись create_record для извлечения ИД из таблицы KEYS.
  1. Дважды щелкните на странице new_record.jsp в панели Структура предприятия.
  2. Дважды щелкните на реляционной записи create_record в панели Данные страницы. Появится окно Настроить реляционную запись.
  3. Выберите переключатель Повторно использовать определение метаданных из существующей записи или списка записей и Заполнять запись существующими данными из базы данных, а затем нажмите кнопку Далее.
  4. Выберите соединение с базой данных в выпадающем списке и нажмите кнопку Далее.
  5. В правой части окна Настроить реляционную запись отображается список ссылок. Выберите Автоматическое создание ключей. Откроется окно Создание ключей.
  6. Выберите Использовать автоматическое создание ключей.
  7. Разверните список W5SAMPLE и выберите таблицу KEYS.
  8. В поле Выбрать столбец идентификаторов выберите KEY_ID.
  9. В поле Выбрать столбец приращения выберите NEXT_KEY.

    Так как для ИД объявления вам понадобится только один ключ, оставьте параметр "Число извлекаемых за раз ключей" равным 1. Если вам понадобится несколько ключей, при таком значении параметра база данных будет выбирать их все за раз.

    Окно Настроить объект данных должно выглядеть следующим образом:

    Окно Настроить объект данных.

  10. Закройте окно Создание ключей с помощью кнопки Закрыть. Затем нажмите кнопку Готово для применения изменений. Теперь поле ИД будет создаваться автоматически для каждой новой записи. Теперь необходимо удалить поле ввода ИД, чтобы пользователь не смог вручную ввести значение.
  11. Поместите курсор на верхней строке таблицы формы ввода, щелкнув на текст ИД:.
  12. Выберите Таблица > Удалить > Удалить строку.
  13. Сохраните страницу.
Результат
При необходимости просмотра сгенерированного для вас ключа можно удалить компонент ввода для данного ИД и заменить его на компонент вывода, привязанный к столбцу ИД для create_record. Затем автоматически сгенерированный ключ отобразиться вверху формы, но будет недоступен пользователю.

Проверка завершенного учебника

Об этой задаче
Когда ваше Web-приложение будет готово к опубликованию, вам потребуется сервер для хостинга, чтобы пользователи смогли обращаться к Web-сайту через Internet. Однако для тестирования Web-сайта можно воспользоваться доступной средой выполнения для имитации сервера. Инструкции по тестированию Web-сайта приведены в разделе Урок 1.3: Тестирование Web-сайта.

Контрольные точки урока

Вы закончили урок 2.4. В этом уроке вы научились настраивать функцию автоматического создания ключей.
< Назад | Далее >

Комментарии