Как связать таблицы в базе данных LibreOffice Base

Автор:
Раздел: Уроки




Всем привет, друзья! Мы продолжаем изучать программу LibreOffice Base, и в этом уроке мы научимся создавать связи между таблицами, расскажу как связать таблицы в базе данных LibreOffice Base. Чтобы создать связь между таблицами, необходимо перейти на вкладку «сервис» и выбрать пункт «связи». В данном окне нам нужно выбрать те таблицы, которые мы будем связывать. Для этого нужно дважды кликнуть по названию таблицы.

Как связать таблицы в базе данных LibreOffice Base

Давайте сейчас я добавлю таблицы «клиенты» и «заказы», остальные таблицы я добавлю чуть позже. Закроем данное окно, откроем таблицу «клиенты» и таблицу «заказы».

Как связать таблицы в базе данных LibreOffice Base
Как связать таблицы в базе данных LibreOffice Base

Как связать таблицы в базе данных LibreOffice Base

Напомню, что в прошлом уроке мы в таблицу «клиенты» добавили 2 записи, таблица «заказы» у нас пустая. Друзья, ссылка на предыдущий урок тут.

Чтобы связать данные таблицы, нужно ключевое поле «код клиента» таблицы «клиенты» перенести на поле «код заказчика» таблицы «заказы». И у нас автоматически появляется связь «один-ко-многим». Это означает, что один клиент может в разное время совершить несколько заказов. Данное поле со стороны «единички» также называется первичный ключ. Поле со стороны «многие» называется внешний ключ. Друзья, у меня уже был более подробный урок про ключевые поля и какие типы связи бывают между таблицами. Ссылка тут.

Как связать таблицы в базе данных LibreOffice Base

Чтобы удалить связь между таблицами, необходимо выделить связь, щелкнуть по ней и нажать кнопку DELETE.

Давайте, сейчас мы в таблицу «заказы» введём запись и укажем такого заказчика, которого нет в таблице «клиенты». Например, заказчика под номером 2. Сохраняем внесенные изменения и сейчас мы снова попробуем связать наши таблицы.

Как связать таблицы в базе данных LibreOffice Base

В таком случае система не даст создать связь между таблицами, так как у нас в подчиненной таблице (а подчиненной таблицей у нас является таблица «заказы»), в этой подчиненной таблице указана запись с таким заказчиком, которого нет в главной таблице (главной таблицей у нас является таблица «клиенты»). Поэтому чтобы данной ошибки не возникало, мы здесь должны указать того заказчика, который хранится в таблице «клиенты». Давайте, сейчас поставим «код заказчика» 1, сохраняем внесенные изменения. Возвращаемся к связям, берем поле «код клиента» и соединяем его с «кодом заказчика». У нас снова появляется связь «один-ко-многим».

Как связать таблицы в базе данных LibreOffice Base

Чтобы настроить связи между таблицами дважды кликаем по связи. У нас появляется окно настройки связи, давайте пробежимся по всем опциям, которые доступны в этом окне.

Как связать таблицы в базе данных LibreOffice Base

Сначала остановимся на столбике «при обновлении». Предположим у нас стоит пункт «не изменять», что это значит? Давайте это окно сейчас закрою, предположим у меня есть «код клиента» (вот код клиента 1), который сделал заказ под номером 0. Я в какой-то момент хочу поменять код этому клиенту и поставить например 10. Попробую сохранить это изменение и система говорит, что мы не можем изменить «код клиента», так как у нас существует связь между таблицами «клиенты» и «заказы».

Как связать таблицы в базе данных LibreOffice Base

Закрываем эту ошибку, возвращаем код клиента 1, снова идем в свойства связи и давайте здесь поставим «обновить каскадно». В этом случае, если мы будем в главной таблице изменять значение ключевого поля, то значение связанного поля будет также меняться в подчиненной таблице.

Как связать таблицы в базе данных LibreOffice Base
Как связать таблицы в базе данных LibreOffice Base

Давайте, мы снова вернёмся в свойства связи и выберем пункт «Установить NULL», нажимаем ok. Сейчас я снова поменяю «код клиента», сохраним все внесенные изменения и далее, чтобы изменения отобразились в подчиненной таблице, нажимаю на вот эту кнопку «обновить». Теперь, когда у нас обновляется поле главной таблицы, в подчиненной таблице в связанном поле NULL или пустое значение.

Как связать таблицы в базе данных LibreOffice Base

Давайте сейчас мы здесь оставим «обновить каскадно» и быстренько пробежимся по столбцу «при удалении». Давайте сейчас оставим при удалении «не изменять», нажмем ok. Давайте, я сейчас таблицу «заказы» закрою, выберу клиента под номером 100, нажимаю DELETE, нажимаю «да», система ругается. Она говорит о том, что мы не можем удалить запись в главной таблице «клиенты» пока существует связанные записи в подчиненной таблице «заказы».

Как связать таблицы в базе данных LibreOffice Base
Как связать таблицы в базе данных LibreOffice Base

Как связать таблицы в базе данных LibreOffice Base

Давайте нажмем ok, дважды кликнем по связи, выберем «удалить каскадно». Давайте, я еще раз открою таблицу «заказы», видите, у нас сейчас есть 1 запись, где «код заказчика» 100. Закрываю эту таблицу, снова выбираю записи «код клиента» 100, нажимаю DELETE, нажимаю «да», у нас удалилась запись в главной таблице. Снова открываем таблицу «заказы» и, как вы видите, сейчас данная таблица пуста.

Как связать таблицы в базе данных LibreOffice Base
Как связать таблицы в базе данных LibreOffice Base

Как связать таблицы в базе данных LibreOffice Base

Снова возвращаемся в свойства связи, «установить NULL», нажимаем ok. Вводим нового клиента и вводим новый заказ, который совершал этот клиент (клиент у нас под номеру 102).

Как связать таблицы в базе данных LibreOffice Base

Так давайте, я сейчас таблицу «заказы» снова закрою, выберу клиента 102, нажму DELETE, да, снова открою таблицу «заказы» и, как вы видите, в данном случае у нас записи остаются, при этом в поле «код заказчика» у нас снова проставляется значение null. Надеюсь, это понятно.

Как связать таблицы в базе данных LibreOffice Base

Давайте мы сейчас закроем данные таблицы, вернемся в окно «конструктор связей». Чтобы добавить оставшийся таблицы в конструктор связей, мы нажимаем данную кнопку «добавить таблицы» и здесь выбираем таблицу «исполнители», «прайс-лист» и «состав заказа».

Как связать таблицы в базе данных LibreOffice Base

Далее располагаем таблицы на рабочей области, выбираем поле «код заказа» таблицы «заказы» и переносим его на поле «код заказа» «состав заказа». Давайте здесь выберем «обновить каскадно» и «удалить каскадно». «Код работы» также переносим на поле «код заказа», выбираем «обновить каскадно», «удалить каскадно», ok. Последняя связь «код исполнителя» переносим на «код исполнителя» «обновить каскадно», «установить Null», окей.

Как связать таблицы в базе данных LibreOffice Base



Как вы наверно уже обратили внимание, связывание таблиц в данной программе очень похоже на связывание таблиц в программе microsoft access. Друзья, вот такой вот урок получился, надеюсь он будет вам полезен.
В этом уроки мы разобрались как связать таблицы в базе данных LibreOffice Base.

Скачать Microsoft Office 2013 бесплатно



Оставить комментарий