Учись программированию на C++ Builder бесплатно!

В общем случае приложение может иметь доступ к нескольким связанным таблицам. Связь между таблицами устанавливается через поля связи, которые обязательно должны быть индексированными. При задании связи между двумя таблицами имеет место отношение подчиненности: одна таблица является главной, а вторая подчиненной. Обычно используется связь «один-ко-многим», когда одной записи в главной таблице может соответствовать несколько записей в подчиненной таблице. Такая связь также называется «мастер-детальный» (Master-Detail). После установления связи между таблицами, при перемещении в главной таблице текущего указателя на какую-либо запись в подчиненной таблице автоматически становятся доступными записи, у которых значение поля связи равно значению поля связи текущей записи главной таблицы.

Связи в подчиненной таблице

Для организации связи между таблицами в подчиненной таблице (компонент Table в случае механизма BDE или его аналоги для других механизмов доступа) используются следующие свойства:

  • Master source – источник данных главной таблицы.
  • IndexName – текущий индекс подчиненной таблицы.
  • IndexFieldNames – поле или поля связи текущего индекса подчиненной таблицы.
  • MasterFields – поле или поля связи индекса главной таблицы.

Особенности связей таблиц

При работе со связанными таблицами нужно учитывать следующие особенности:

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

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


Поиск по сайту