Программное создание Баз Данных

Наконец БД создана. У вас имеются полноценные таблицы с которыми вы можете спокойно работать, но для получения полной информации вам иногда придется в каждую таблицу заносить одну и туже информацию. При этом таблица (или табицы), начнут 'пухнуть' и в конечном итоге ваша БД станет неповоротливым монстром.
Для того, что бы избежать этого небходимо свести идентичные данные в отдельные таблицы, а что бы они (данные) не потеряли смысл, связать их с теми таблицами из которых они были изъяты. Таким образом, связывая таблицы друг с другом мы создаем осмысленные отношения между таблицами.

Создание Отношений

Устанавливая отношения между таблицами, можно создать легко поддерживаемые, гибкие базы данных. . Таблицы связываются в Jet – машине посредством объекта Relation, хранящегося в БД. Объект Relation содержит информацию о том, какие таблицы связаны и какая таблица является главной, а какая подчиненной. Отношения между таблицами устанавливаются с помощью индексных полей (создание индексов описано в предыдущей статье). Мы рассмотрим два вида отношений, которые можно создать между таблицами.

Отношения – 'один – к – одному'

Отношения 'один – к – одному' используются для связи единичной записи главной таблицы с единичной записью другой таблицы.

Для создания отношения необходимо описать переменную объекта Relation:

Dim MyRelation As Relation

Затем создаем сам объект Relation, его создаем с помощью метода CreateRelation объекта Database:

Set MyRelation=NewDB.CreateRelation ("Name")

где Name - строковая переменная являющаяся уникальным именем для вновь создаваемого обекта Relation

После создания объекта Relation определяем его свойства:

  1. Определяем главную таблицу

MyRelation.Table = "Name" , где Name – имя главной таблицы;

  1. Определяем подчиненную таблицу

MyRelation.ForeignTable = "Name" , где Name – имя подчиненной таблицы;

  1. Устанавливаем атрибуты

    MyRelation. Attributes = dbRelationUnique

    где dbRelationUnique – устанавливает отношение - 'один – к – одному', другие атрибуты объекта Relation, в этой статье мы рассматривать не будем.

Теперь нам необходимо определить поля которые будут использоваться в отношении. При помощи метода CreateField объекта Relation создаем в первичной таблице поле отношения. Для этого сначала описываем переменную объекта Field.

Dim RelField As Field

А теперь создаем поле.

Set RelField = MyRelation.CreateField ("Name"),

где Name – имя поля в первичной таблице по которому будет создано отношение.

Установим свойствовнешнего поля объекта Field.

RelField.ForeignName = "Name",

где Name – имя поля в подчиненной таблице по которому будет создано отношение.

В завершении добавляем поле отношения к оъекту Relation, а затем сам объект к Базе Данных.

MyRelation.Fields.Append RelField

NewDB.Realtions.Append MyRelation

Отношение 'один – ко – многим'

Отношение 'один – ко – многим' используется для связывания единичной записи главной таблицы с несколькими записями в другой таблице.

Создание отношения 'один – ко – многим' идентичен созданию отношению 'один – к – одному', толко в описании атрибута MyRelation необходимо поставить '0'.

MyRelation. Attributes = 0

Удаление Отношений

Для удаления отношения можно воспользоваться методом Delete объекта БД.

NewDB.Relations.Delete "Name",

где Name - строковая переменная являющаяся уникальным именем созданного обекта Relation