ВУЗ:
Составители:
Рубрика:
- 18 -
3. Лабораторная работа № 3. Разработка базы данных с отношением
'Master-Detail' (главный-подчиненный) между таблицами
Цель работы – приобретение практических знаний в создании приложе-
ний класса баз данных с отношением ‘Master-Detail’ между таблицами
(функциональность – синхронизация данных в главной и подчиненной таб-
лицах, изменение данных в таблицах с учетом поддержания ссылочной цело-
стности).
Теоретическая часть. При отношении 'Master-Detail' (главный-
подчиненный) между таблицами одна из них объявляется главной (Master),
вторая
– подчиненной (зависимой, Detail); связь таблиц осуществляется по
полю с одинаковым именем, входящему в состав обоих таблиц.
Типичным примером является связь между списком заказчиком (таблица
CUSTOMER.DB) и заказов (ORDERS.DB). Каждая из таблиц имеет (число-
вое) поле CustNo, однозначно идентифицирующее заказчика (для таблицы
заказчиков - уникальное). Конечная цель проекта – получение информации о
заказах (из таблицы ORDERS.DB), сделанных конкретным
заказчиком (соот-
ветствующим выбранной записи в таблице CUSTOMER.DB). Естественно, у
некоторых заказчиков может не быть заказов вообще, у некоторых – много
заказов; при попытке удаления заказчика с ненулевым количеством заказов
возникает ситуация нарушения ссылочной целостности. Добавление заказа
должно предваряться дополнением списка заказчиков (если информация о
данном заказчике отсутствует).
Копия окна будущего приложения
приведена на рис.10. На форму поме-
щены по два компонента типа
TDBGrid, TTable и TDataSource, для навигации
по (главной) таблице служит
TDBNavigator. Настройки компонентов приведе-
ны в табл.2.
Дополнительно в свойстве
MasterSource компонента Table2 (Detail-
таблица) установить значение
DataSource1 (т.е. фактически дать ссылку на
соответствующий компонент, связанный с Master-таблицей).
Путем щелчка мыши на кнопке ...
свойства Master Fields компонента Ta-
ble2
вызвать окно Field Link Designer (окно инструмента для установления свя-
зи таблиц по одноименным полям), в выпадающем списке
Available Indexes
выбрать
CustNo (имя поля, по которому будет осуществлено связывание).
Выбрать (щелчком левой кнопки мыши) в левом списке
Detail Fields и в пра-
вом списке
Master Fields имен связываемого поля CustNo, нажатием кнопки
Add подтвердить выбор этого поля и проконтролировать внесение строки
CustNo
→
CustNo в список Joined Fields (рис.11). Напомним, что возможен про-
смотр данных из таблиц в DesignTime при установке значений свойства
Active
3. Лабораторная работа № 3. Разработка базы данных с отношением 'Master-Detail' (главный-подчиненный) между таблицами Цель работы – приобретение практических знаний в создании приложе- ний класса баз данных с отношением ‘Master-Detail’ между таблицами (функциональность – синхронизация данных в главной и подчиненной таб- лицах, изменение данных в таблицах с учетом поддержания ссылочной цело- стности). Теоретическая часть. При отношении 'Master-Detail' (главный- подчиненный) между таблицами одна из них объявляется главной (Master), вторая – подчиненной (зависимой, Detail); связь таблиц осуществляется по полю с одинаковым именем, входящему в состав обоих таблиц. Типичным примером является связь между списком заказчиком (таблица CUSTOMER.DB) и заказов (ORDERS.DB). Каждая из таблиц имеет (число- вое) поле CustNo, однозначно идентифицирующее заказчика (для таблицы заказчиков - уникальное). Конечная цель проекта – получение информации о заказах (из таблицы ORDERS.DB), сделанных конкретным заказчиком (соот- ветствующим выбранной записи в таблице CUSTOMER.DB). Естественно, у некоторых заказчиков может не быть заказов вообще, у некоторых – много заказов; при попытке удаления заказчика с ненулевым количеством заказов возникает ситуация нарушения ссылочной целостности. Добавление заказа должно предваряться дополнением списка заказчиков (если информация о данном заказчике отсутствует). Копия окна будущего приложения приведена на рис.10. На форму поме- щены по два компонента типа TDBGrid, TTable и TDataSource, для навигации по (главной) таблице служит TDBNavigator. Настройки компонентов приведе- ны в табл.2. Дополнительно в свойстве MasterSource компонента Table2 (Detail- таблица) установить значение DataSource1 (т.е. фактически дать ссылку на соответствующий компонент, связанный с Master-таблицей). Путем щелчка мыши на кнопке ... свойства Master Fields компонента Ta- ble2 вызвать окно Field Link Designer (окно инструмента для установления свя- зи таблиц по одноименным полям), в выпадающем списке Available Indexes выбрать CustNo (имя поля, по которому будет осуществлено связывание). Выбрать (щелчком левой кнопки мыши) в левом списке Detail Fields и в пра- вом списке Master Fields имен связываемого поля CustNo, нажатием кнопки Add подтвердить выбор этого поля и проконтролировать внесение строки CustNo → CustNo в список Joined Fields (рис.11). Напомним, что возможен про- смотр данных из таблиц в DesignTime при установке значений свойства Active - 18 -
Страницы
- « первая
- ‹ предыдущая
- …
- 16
- 17
- 18
- 19
- 20
- …
- следующая ›
- последняя »