Russian Belarusian English German Japanese Ukrainian

Связи таблиц

CuBook25

В общем случае приложение может иметь доступ к нескольким связанным таблицам. Связь между таблицами устанавливается через поля связи, которые обязательно должны быть индексированными. При задании связи между двумя таблицами имеет место отношение подчиненности: одна таблица является главной, а вторая подчиненной. Обычно используется связь «один-ко-многим», когда одной записи в главной таблице может соответствовать несколько записей в подчиненной таблице. Такая связь также называется «мастер-детальный» (Master-Detail). После установления связи между таблицами, при перемещении в главной таблице текущего указателя на какую-либо запись в подчиненной таблице автоматически становятся доступными записи, у которых значение поля связи равно значению поля связи текущей записи главной таблицы.
 
Для организации связи между таблицами в подчиненной таблице (компонент Table в случае механизма BDE или его аналоги для других механизмов доступа) используются следующие свойства:
  • Master source - источник данных главной таблицы
  • IndexName - текущий индекс подчиненной таблицы
  • IndexFieldNames - поле или поля связи текущего индекса подчиненной таблицы
  • MasterFields - поле или поля связи индекса главной таблицы
При работе со связанными таблицами нужно учитывать следующие особенности:
  • При изменении (редактировании) поля связи может нарушиться связь между записями двух таблиц. Поэтому при редактировании поля связи записи главной таблицы нужно соответственно изменять и значения поля связи всех подчиненных записей
  • При удалении записи главной таблицы нужно удалять и соответствующие ей записи в подчиненной таблице (каскадное удаление)
  • При добавлении записи в подчиненную таблицу значение поля связи формируется автоматически по значению поля связи главной таблицы
Ограничения ссылочной целостности (по изменению полей связи и каскадному удалению записей) могут быть наложены на таблицы при их создании, например, в среде программы Database Desktop, или устанавливаться программно.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий