Many-to-many (data model)

{{Short description|Systems analysis concept}}

{{refimprove|date=January 2013}}

File:CPT-Databases-ManytoMany.svg

File:Databases-ManyToManyWJunction.jpg

In systems analysis, a many-to-many relationship is a type of cardinality that refers to the relationship between two entities,Also see entity–relationship model. say, A and B, where A may contain a parent instance for which there are many children in B and vice versa.

Data relationships

For example, think of A as Authors, and B as Books. An Author can write several Books, and a Book can be written by several Authors. In a relational database management system, such relationships are usually implemented by means of an associative table (also known as join table, junction table or cross-reference table), say, AB with two one-to-many relationships {{nowrap|A → AB}} and {{nowrap|B → AB}}. In this case the logical primary key for AB is formed from the two foreign keys (i.e. copies of the primary keys of A and B).

In web application frameworks such as CakePHP and Ruby on Rails, a many-to-many relationship between entity types represented by logical model database tables is sometimes referred to as a HasAndBelongsToMany (HABTM) relationship.[http://book.cakephp.org/1.3/view/1044/hasAndBelongsToMany-HABTM 3.7.6.5 hasAndBelongsToMany (HABTM)] {{webarchive|url=https://web.archive.org/web/20120815165131/http://book.cakephp.org/1.3/view/1044/hasAndBelongsToMany-HABTM |date=2012-08-15 }}. Cakephp.org

See also

References