Essa é uma maneira fácil de implementar relacionamentos muitos para muitos .
Considere estas duas tabelas:
category
--------
categoryID [PK]
categoryName
product
-------
productID [PK]
productName
Se você adicionar um categoryID
campo a product
, cada produto poderá ter apenas uma categoria. Mas se tivermos algo product_category_mapping
assim:
product_category_mapping
------------------------
mappingID [PK]
productID [FK]
categoryID [FK]
então podemos ter:
mappingID productID categoryID
--------------------------------
1 1 1
2 1 2
3 2 3
4 2 1
Portanto, o produto 1 é da categoria 1 e 2 e o produto 2 é da categoria 3 e 1, muitos produtos pertencem a muitas categorias e muitas categorias têm muitos produtos.
Como escreve o tdammers , essa tabela é frequentemente referida como tabela de links ou tabela de bridge, e eu até a vi referida como tabela HABTM, de HasAndBelongsToMany, que aparentemente é Ruby on Rails, fala de muitos para muitos. E a Wikipedia a chama de tabela de junção e tem mais alguns nomes para ela.