Теория и практика построения баз данных (1088289), страница 73
Текст из файла (страница 73)
Форма на рис. 10.7 не явэшется единственной приемлемой формой этого представления. Раздел транзакций, к примеру, можно разместить перед разделом интересов клиента. Сведения о клиенте можно расположить так, чтобы их впд был больше похож на горизонтальный. Атрибуты Свз1огпегйате, АгеаСоое н Соса!йитЬег можно было бы поместить в один столбец, а 51гее1, Сйу, 51а1е и 71р (улица, город, штат, почтовый индекс) — в другой.
Все эти альтернативы позвоэшют в структуре формы отразить структуру объектов, лежащих в ес основе. Семантика данных должна быть графически очевидна Еще одна характеристика хорошо спроектированной формы заключается в том, что семантика данных является графически очевидной. Рассмотрим раздел основных сведений о покупателе в форме Свзготег на рис. 10.7. Обратите внимание па прямоугольники, которыми ограничены поля АгеаСог)е и Соса(йотЬег, а также поля 51геей Сну, 51а1е и Лр. Чтобы понять, для чего это сделано, обратимся вновь к рис.
10.3, а. Семантический объект СО5ТОМЕк имеет групповьге атрибуты РЬопе (телефон) и Аоргезз (адрес). Так как оба этих атрибута имеют максимальное кардинальное число 1, они не являются обязательными с точки зрения реляционной структуры. Фактически, они не фигурирую г в отношениях на рис. 10.2, в илн 10.3, а. Единственная нх задача состоит в том, чтобы семантически связывать друг с другом атрибуты АгеаСоое и Соса(йотЬег, а также атрибуты 51геей Сйу, 51а1е и Лр.
Назначение прямоугольников в форме Свз1отег Рцгсйаэе Гога — придать этим связям графическую наглядность. Для большинства пользователей такое решение удобно. Зная, что телефонный номер состоит из кода региона н местного но>нера, они находят тесную графическую связь между этими атрибутами весьма логичной. Структура формы должна побуждать к правильным действиям Структура формы должна облегчать выполнение правильных действий и затруднять выполнение ошибочных. Например, поле 51а1е в форме на рис. 10.7 имеет маленькие размеры.
Очевидно, при этом ожидается, что пользователь введет только двухбуквенную аббревиатуру штата. Но более удачным будет такое роше~ ~ не, прц котором можно будет ввести только два символа, а наилучший выход состоит в том, чтобы представить штаты в раскрывающемся списке и дать пользователю возможность выоирать только из этого списка. На рис, 10.7 некоторые поля имеют белый цвет, а некоторые серый. Формы и этом приложении спроектированы так, что пользователи могут вводить данные ~олько в белые поля; элементы данных, расположенные в серых полях, не могут бьп'ь изменены в форме. Так, пользователь пе имеет возможности вводить данные в поля Сору илп Т11(е раздела Тгапэасйоп.
Вместо этого, чтобы выбрать пли изменить название работы, пользователь щелкает мьппыо на комбинированном списке в столбце А>1Ь1. Когда пользователь щелкает мышью на стрелке, отображается перечень произведений в раскрывающемся списке, как показано на рпс. 10.8. Если пользователь хочет обновить пли удалить данные о произведении пли художнике, оп должен использовать другую форму.
'я««>«з ««"" ":~Ы >Кя«яу " '-"'-~!!з~:':::""" " ' «ю с!~ ""' """': г .-:ИК с «к 7 к с ««««« ~й~ > соя>отек мате Й««1 ««« «с««« кк„,~ .. П«и» о« .и, Г«и а> 1>тги. ' п«кч>спяк г ь о«« я«е и Рис. 10.8. Использование раскрывающегося списка Такое решение обусловлено тем, что когда пользователи вводят новые транзакции для клиентов, они должны добавлять данные, касающиеся только транз- Проектирование форм 348 348 Глава 10. Проектирование приложений баз данных акций, а именно Рпгсйазейа1е (дата продажи) и 5а(езРпсе (цена продажи). Если позволить им изменять данные в таблицах АКТЕ5Т и ттОКК, зто откроет двери для возможных непреднамеренных плп ошибочных изменений; кроме того, чтобы продать работу, такие изменения данных и не нужны.
Подобным же образом организована форма Агйза!п1егез1з (интерес к художникам). Пользователи могут выбирать значения только из предоставленного списка. Этот случай, однако, не столь однозначен, как предыдущий. Возможно, продавцы хотели бы иметь возможность зарегистрировать интерес клиента к произведениям определенного художника, даже если этот художник не представлен в базе данных галереи. В этом случае форму следовало бы изменить, чтобы пользователи могли добавлять авторов в список.
Решение, представленное на рис. 10.7, может быть обусловлено тем, что владелец галереи хочет регистрировать интерес клиентов только к тем художникам, работы которых представлены в галерее на настоящий момент илп будут представлены в будугцеьт. Таким образом, ему нужен контроль над тем, какие имена могут появляться. Формы в среде графического интерфейса пользователя Графический интерфейс пользователя предоставляет ряд возможностей, которые могут значительно упростить работу пользователей с приложениями баз данных. Раскрывающиеся списки Раскрывающийся список (г(гор-<)очки Ъг Ьох) — это элемент управления графического интерфейса, представляющий) собой список альтернатив, нз которых может выбирать пользователь.
Специальное свойство этого элемента управления определяет, является ли данный список фиксированным или пользователи могут добавлять в него новые значения. ЕЕа рис. 10.9 представлена новая версия формы Сиз1ощег Ригсйазе Рогщ, где пользователи имеют возможность добавлять имена хи дожников, отсутствующих в списке. Этот процесс сводится к тому, что приложение добавляе~ новую строку в таблицу АКТЕ5Т. Разумеется, чтобы это работало, обязательным атрибутом может быть только Атт(зтйагпе. Если будут определены еще какие-либо обязательные поля, СУБД откажется вставлять новую строку. Раскрывающиеся списки имея>т несколько преимуществ перед полями ввода. Вопервых, людям легче распознать что-лпбо, чем воспроизвести.
Например, в форме на рпс. 10.8 легче выбрать имя художника пз списка, чем вспомнить всех художников, имеющихся в базе данных. Кроме того, распознать имя прице, чем правильно его написать. Наконец, сслп список настроен так, что отображает только те значения, которые имеются в базе данных, это предотвращает попадание в базу данных неочевидных ошибок, связанных со случайным нажатием клавшп пользователем, К сожалению, «0пап М1го» (с одним пробелом между и и М) и «0иапя((го» (с двумя пробелами между и и М) будут восприниматься СУБД как два различных автора.
Фиксированные раскрывающиеся списки избавят от появления таких ошибок. '';, г Рнс. 10.9. Раскрывающийся список, позволяющий вводить новые значения Переключатели и группы ЕТереключитель (ор1изп Ьтптоп) или ящогопозиционный переключптель (гасйо 1шиоп) — это экранный орган управления, позволяющий выбирать одно условие или состояние из нескольких возможных.
Предположим, что галерея решила вести учет налогового статуса своих покупателей. Пусть этот статус может иметь два значения — ТахаЫе (облагается налогом) и КопгахаЫе (не облагается налогом), и эти значения являтотся взаимоисключаюпитми.
Для сбора этих данных можно использовать группу переключателей, гюдобную группе Так 51а1пз (Налоговый статус) на рис. 10.10. По логике работы этой группы, если пользователь выбирает статус ТахаЫе, выбор значения йопгахаЫе автоматически отменяется. Если пользователь выбирает статус КоптахаЫе, автоматически отменяется статус ТахаЫе. Полученные из формы данные прикладная программа должна сохранить в столбце таблицы, который представляет вариант, выбранный пользователем. В данном примере этот столбец носит название Тах51агоз (Налоговый статус). Есть два способа хранения данных, вводимых с помогцью переключателя.
Первый сгюсоб заключается в том, чтобы записывать даштые в виде целого числа в диапазоне количества кнопок. В нашем случае это будет число 1 или 2. Второй способ— записывать данные в виде текста, описывающего выбранный вариант. Здесь возможными вариатпами являются «Да» пли «Нет». Проектирование форм 351 Рис. 10.1! . Использование флажков 350 Глава 10. Проектирование приложений баз данных ,-1.Зла Рис. 10.10. Использование групп переключателей Флажки Флажки (сЬес!г Ьохез) похожи на переключатели, однако варианты выбора в группе флажков не являются вааимоисключающими; можно выбрать более одного варианта. Пусть, например, галерея хочет хранить в базе данных информацию о том, какие виды изобразительного искусства интересуют покупателей.
Возможными видами являются литография, живопись маслом, живопись пастелью и фотография; в форме С05ТОИН на рис. 10.11 они представлены в виде группы флажков 1пгегезг Агеа(1) (Область интересов). Пользователь делает выбор, устанавливая соответствующие флажки. На рис. 10.11 обратите внимание на затененные флажки Раз1е(з и Сегаш!ск Это говорит о том, что соответствующие элементы данных имеют пустые значения. Пользователи могут интерпретировать это так, что данный покупатель интересуется литографиями и фотографиями и не интересуется масляной живописью. О том, интересуется ли этот покупатель пастелью и керамикой, информация отсутствует.
(Пустые значения обсуждаются в главе 6.) Если важно отслеживать нулевой статус, структура базы данных должна предусматривать три значения для каждого флажка: установлен, сброшен и не определен (пп!!). Это касается и переключателей. ЪЧеЬ-формы Формы, отображаемые в браузерах, также представляют собой формы графического интерфейса, и все сказанное вьппе относится и к ним. Однако у туеЬ-форм есть одно свойство, которое отсутствует у форм Ф!пг)оттек гпперссылки.