Kiedy element A może być powiązany z wieloma elementami B, a element B może być powiązany z wieloma elementami A. Nazywa się to Wiele do wielu relacji
Dane z tymi relacjami powinny być przechowywane w oddzielnej tabeli i łączone tylko na zapytanie.
Przykład
Tabela 1
| product_uid | price | amount |
| 1 | 12000 | 3000 |
| 2 | 30000 | 600 |
Tabela 2
| tag_uid | tag_value |
| 1 | tag_01 |
| 2 | tag_02 |
| 3 | tag_03 |
| 4 | tag_04 |
Następnie używamy tabeli sprzężeń, aby je powiązać
Tabela 3
| entry_uid | product_uid | tag_uid |
| 1 | 1 | 3 |
| 2 | 1 | 4 |
| 3 | 2 | 1 |
| 4 | 2 | 2 |
| 5 | 4 | 2 |
Zapytanie będzie (jeśli chcesz wybrać jeden element i tag)
SELECT t1.*, t2.tag_value
FROM Table1 as t1,
JOIN Table3 as join_table ON t1.product_uid = join_table.product_uid
JOIN Table2 as t2 ON t2.tag_uid = join_table.tag_uid
WHERE t1.product_uid = 1