На главную   На главную   Форумы Новости Документация Скачать Купить  
Регистрация  
Система Allegro
Oб Allegro Характеристики Пример конфигурации Документация База ошибок Развитие
Версия для печати К списку книг Вернуться к оглавлению Предыдущий параграф Следующий параграф
Поиск по книге

Глава 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 ». Программа сообщит нам о том, что это невозможно :



Итак, мы защитили справочник от случайного создания товаров- дубликатов. Разумеется, хорошо бы еще ввести ограничение на уникальность наименований в справочниках Вид Товара и Марка товара. Сделайте это самостоятельно в качестве упражнения.



Пример создания склада в Allegro Наверх