Подсказки на компьютерную тематику

Можно подсмотреть, если забыли…

Как работают связи между таблицами в БД MySQL

Зачем нужны связи в базе данных MySQL

Связи между таблицами создаются непосредственно в базе данных для сохранения целостности значений в связанных полях, а также настройки удаления или редактирования данных в связанных полях с одинаковыми значениями ключевых полей.
Важно:После установки связей можно будет уменьшить нагрузку на сервер баз данных, так как удаление или редактирование каких-либо данных в нескольких таблицах можно будет осуществлять только одним SQL-запросом к основной таблице, при этом все аналогичные действия с такими данными в зависимых таблицах будут осуществлены самой базой данных!

Требования для возможности создания связей

    Необходимые настройки базы данных и таблиц для создания связей:

  • тип базы данных должен быть InnoDB, который полностью поддерживает работу Внешних ключей, необходимых для связей между таблицами
  • связываемые поля должны иметь индексы – Primary key (Основной индекс) или Unique (Уникальный индекс)
  • связываемые поля в таблицах должны иметь одинаковый тип данных

Как создать связи

    Связи создаются с помощью Внешних ключей (Foreign key):

  • в личном кабинете PhpMyAdmin выбрать требуемую базу данных, затем последовательно пройти по вкладкам Еще и Дизайнер
  • вводом SQL кода, например
    CREATE TABLE customers (
    customer_id INT AUTO_INCREMENT PRIMARY KEY,
    customer_name VARCHAR(100)
    );

    CREATE TABLE orders (
    order_id INT AUTO_INCREMENT PRIMARY KEY,
    customer_id INT,
    amount DOUBLE,
    FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
    );

  • Общая информация о связях между таблицами в базе данных MySQL

      При создании связей надо помнить:

    • Внешний ключ, т.е. столбец из зависимой таблицы, соединится с индексированным столбцом вида Primary key или Unique в главной таблице
    • для связи по типу многие ко многим требуется таблица-посредник между двумя соединяемыми таблицами, в которой должно быть два Внешних ключа, ссылающихся на первую и вторую таблицу соответственно.
    • для получения информации о существующих связях можно зайти во вкладку Структура, а затем в раздел Связи для каждой таблицы
    • связь один к одному фактически просто делит одну таблицу на несколько
    • если одна сущность не может существовать без другой – это обязательная связь,
      если может существовать – это необязательная связь
    • в MySQL сначала выбирается в главной таблице ссылочное поле, а затем в зависимой таблице выбирается внешний ключ

Как работают связи между таблицами в БД MySQL

Зачем нужны связи в базе данных MySQL

Связи между таблицами создаются непосредственно в базе данных для сохранения целостности значений в связанных полях, а также настройки удаления или редактирования данных в связанных полях с одинаковыми значениями ключевых полей.
Важно:После установки связей можно будет уменьшить нагрузку на сервер баз данных, так как удаление или редактирование каких-либо данных в нескольких таблицах можно будет осуществлять только одним SQL-запросом к основной таблице, при этом все аналогичные действия с такими данными в зависимых таблицах будут осуществлены самой базой данных!

Требования для возможности создания связей

    Необходимые настройки базы данных и таблиц для создания связей:

  • тип базы данных должен быть InnoDB, который полностью поддерживает работу Внешних ключей, необходимых для связей между таблицами
  • связываемые поля должны иметь индексы – Primary key (Основной индекс) или Unique (Уникальный индекс)
  • связываемые поля в таблицах должны иметь одинаковый тип данных

Как создать связи

    Связи создаются с помощью Внешних ключей (Foreign key):

  • в личном кабинете PhpMyAdmin выбрать требуемую базу данных, затем последовательно пройти по вкладкам Еще и Дизайнер
  • вводом SQL кода, например
    CREATE TABLE customers (
    customer_id INT AUTO_INCREMENT PRIMARY KEY,
    customer_name VARCHAR(100)
    );

    CREATE TABLE orders (
    order_id INT AUTO_INCREMENT PRIMARY KEY,
    customer_id INT,
    amount DOUBLE,
    FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
    );

  • Общая информация о связях между таблицами в базе данных MySQL

      При создании связей надо помнить:

    • Внешний ключ, т.е. столбец из зависимой таблицы, соединится с индексированным столбцом вида Primary key или Unique в главной таблице
    • для связи по типу многие ко многим требуется таблица-посредник между двумя соединяемыми таблицами, в которой должно быть два Внешних ключа, ссылающихся на первую и вторую таблицу соответственно.
    • для получения информации о существующих связях можно зайти во вкладку Структура, а затем в раздел Связи для каждой таблицы
    • связь один к одному фактически просто делит одну таблицу на несколько
    • если одна сущность не может существовать без другой – это обязательная связь,
      если может существовать – это необязательная связь
    • в MySQL сначала выбирается в главной таблице ссылочное поле, а затем в зависимой таблице выбирается внешний ключ