Как сделать двухстороннюю связь в mysql?

Пользователь

от montana_hand , в категории: SQL , год назад

Как сделать двухстороннюю связь в mysql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от buster , 9 месяцев назад

@montana_hand 

Двухсторонняя связь в MySQL может быть достигнута через создание двух таблиц, каждая из которых будет содержать свойство, ссылку на другую таблицу. Например, если создать таблицу "users", содержащую информацию о пользователях, и таблицу "orders", содержащую информацию о заказах, то для создания связи между ними можно добавить поле "user_id" в таблицу "orders", которое будет ссылаться на идентификатор пользователя в таблице "users". Также следует добавить внешний ключ в таблицу "orders" для обеспечения целостности данных.


CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50) );


CREATE TABLE orders( id INT PRIMARY KEY, user_id INT, FOREIGN KEY (user_id) REFERENCES users(id) );


Теперь при добавлении заказа можно указать пользователя, к которому он относится:


INSERT INTO orders (id, user_id) VALUES (1, 123);


И для получения информации о пользователях и связанных с ними заказах можно использовать JOIN-запросы:


SELECT * FROM users LEFT JOIN orders ON users.id = orders.user_id;


SELECT * FROM orders LEFT JOIN users ON orders.user_id = users.id;