Связать две таблицы по заданным полям - MySQL

Узнай цену своей работы

Формулировка задачи:

Есть у нас 2 таблицы, первая: customers содержит поля id, name, city, notes и вторая таблица: jobs у которой есть следующие поля: id, customer_id, about. И собственно вопрос, как реализовать связь таблиц по полям customer_id и id? То есть, в jobs.customer_id можно добавлять значение только которое есть в customer.id. Осознаю, что вопрос очень простой... но, я только начинаю разбираться, сильно не пинайте. Спасибо.

Решение задачи: «Связать две таблицы по заданным полям»

textual
Листинг программы
CREATE TABLE customers(
  id INT(11) NOT NULL,
  name VARCHAR(255) DEFAULT NULL,
  city VARCHAR(255) DEFAULT NULL,
  notes VARCHAR(255) DEFAULT NULL,
  PRIMARY KEY (id)
)
ENGINE = INNODB;
 
CREATE TABLE jobs(
  id INT(11) DEFAULT NULL,
  customer_id INT(11) DEFAULT NULL,
  about VARCHAR(255) DEFAULT NULL,
  INDEX FK_jobs_customers_id (customer_id),
  CONSTRAINT FK_jobs_customers_id FOREIGN KEY (customer_id) REFERENCES customers (id)
)
ENGINE = INNODB;

Объяснение кода листинга программы

  1. Создается таблица customers с полями: id, name, city, notes.
  2. Устанавливается первичный ключ для таблицы customers - id.
  3. Устанавливается внешний ключ для таблицы jobs - customer_id, который ссылается на поле id таблицы customers.
  4. Создается таблица jobs с полями: id, customer_id, about.
  5. Устанавливается индекс для поля customer_id в таблице jobs.
  6. Устанавливается ограничение внешнего ключа для поля customer_id в таблице jobs, которое ссылается на поле id таблицы customers.
  7. Обе таблицы будут храниться в базе данных с использованием движка InnoDB.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы