Relational Data Modeling - Association Table (Bridge, Cross)


An association table (bridge table) is a table that permits to implement:

Because most of database only support one-to-many relationships, it is necessary to implement other relationships physically via a third junction table.

An association table is also known as:



To model a one-to-one relationship:


A Many-to-many relation is implemented via two one-to-many relationships:

  • A → AB
  • and 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).

The third table can be a fact table

Weighing Factor

The weighing factor is there mainly to distribute the dollar amounts evenly across the categories, where the sum of the parts cannot be greater than the total


For example, in a sport bet application:

  • Bob has interests in Football and Baseball and spends $20,
  • Alice has interests in Football, Soccer and Tennis and spends $30.

A revenue by breakdown cannot be…

Football: $50
Baseball: $20
Tennis: $30

because the total would $130 when in reality it's only $50.

The weighing factor will correct this logic. Ie the amount would be divide by the sports of interest for each person

The result would then be:

Football: 20/2 (Bob) + 30/3 (Alice) = $20
Baseball: 20/2 (Bob) = $10
Soccer: 30/3 (Alice) = $10
Tennis: 30/3 (Alice) = $10

with a total of $50

The problem with the weigh factor is that the user needs to know what the factor is for.

Powered by ComboStrap