Связать две таблицы по заданным полям - 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;
Объяснение кода листинга программы
- Создается таблица
customersс полями: id, name, city, notes. - Устанавливается первичный ключ для таблицы
customers- id. - Устанавливается внешний ключ для таблицы
jobs- customer_id, который ссылается на поле id таблицыcustomers. - Создается таблица
jobsс полями: id, customer_id, about. - Устанавливается индекс для поля customer_id в таблице
jobs. - Устанавливается ограничение внешнего ключа для поля customer_id в таблице
jobs, которое ссылается на поле id таблицыcustomers. - Обе таблицы будут храниться в базе данных с использованием движка InnoDB.