new m2m relationship detection
This commit is contained in:
committed by
Steve Chavez
parent
b37bacb19a
commit
bba960d4c6
+23
-1
@@ -957,7 +957,29 @@ this:
|
|||||||
Embedding through join tables
|
Embedding through join tables
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
PostgREST can also detect relationships going through join tables. Thus you can request the Actors for Films (which in this case finds the information through Roles).
|
PostgREST can also detect many-to-many relationships going through join tables. For this, the join table must contain foreign keys to the tables in
|
||||||
|
the many-to-many relationship and its primary key must include these foreign key columns.
|
||||||
|
|
||||||
|
.. code-block:: postgresql
|
||||||
|
|
||||||
|
create table "Roles"(
|
||||||
|
film_id int references "Films"(id)
|
||||||
|
, actor_id int references "Actors"(id)
|
||||||
|
, primary key(film_id, actor_id)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- the many-to-many relationship can also be detected if the join table has a surrogate key,
|
||||||
|
-- as long as the foreign key columns are also part of the primary key
|
||||||
|
|
||||||
|
create table "Roles"(
|
||||||
|
id int generated always as identity,
|
||||||
|
, film_id int references "Films"(id)
|
||||||
|
, actor_id int references "Actors"(id)
|
||||||
|
, primary key(id, film_id, actor_id)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
Then you can request the Actors for Films (which in this case finds the information through Roles).
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user