Глава 2. СОЗДАНИЕ СПРАВОЧНОЙ СИСТЕМЫ
Создаем ограничение на уникальность
Во избежание таких неприятных инцидентов, как случайное создание товаров
-дубликатов, неплохо бы иметь ограничение на уникальность сочетания
значений в 3 полях, характеризующих товар. Прежде,
чем вводить это ограничение, убедимся, что в справочнике
пока нет товаров-дубликатов. Если такие имеются -
нужно их удалить.
Теперь создадим уникальный индекс по полям GOODS_KIND,
GOODS_MARK и ARTICLE. Делается это вручную при
помощи окна ISQL (интерактивного SQL), вызывающегося с помощью
пункта Инструменты/Интерактивный SQL Главного меню. Наберем SQL
команду:
alter table goods
add constraint ux_goods
unique(goods_kind, goods_mark, article)
и нажмем комбинацию Ctrl+Enter или кнопку Выполнить на
панели инструментов (значок молнии).
Если команда набрана правильно, то она выполнится и ISQL
автоматически подтвердит транзакцию, о чем будет свидетельствовать сообщение Commit
(AutoCommit DDL) в нижней части окна. Окно
ISQL позволяет нам общаться с сервером баз данных напрямую.
Создавая ограничение на уникальность, мы назвали его ux_
goods. Рекомендуется давать названия ограничениям (constraints). Тогда
их легче удалить потом в случае необходимости.
Теперь мы можем посмотреть, как выглядит структура таблицы GOODS
в самой базе данных. Для этого в окне «
Метаданные» выберем закладку «База» (слева),
откроем дерево таблиц, найдем там нашу таблицу товаров GOODS
и посмотрим ее структуру:
Мы видим, что таблица GOODS имеет 4 поля,
один первичный ключ PK_GOODS и ограничение на уникальность
UX_GOODS, которое мы только что создали.
Кроме того, таблица имеет два внешних ключа FK_
GOODS1 (на таблицу GOODS_KIND) и FK
_GOODS2 (на таблицу GOODS_MARK). Внешние
ключи служат для обеспечения ссылочной целостности между таблицами справочников и
создаются автоматически.
Теперь вернемся к справочнику Товар, выбрав закладку «Справочники
» в окне «Метаданные». Попытаемся добавить дубликат в
справочник, например ту же «стиральную машину BOSCH 3050
». Программа сообщит нам о том, что это невозможно
:
Итак, мы защитили справочник от случайного создания товаров-
дубликатов. Разумеется, хорошо бы еще ввести ограничение на
уникальность наименований в справочниках Вид Товара и Марка товара.
Сделайте это самостоятельно в качестве упражнения.
|