sql >> Database teknologi >  >> RDS >> PostgreSQL

En-til-mange relationer i (Postgre)SQL

Det, du rent faktisk har gang i her, er et mange-til-mange forhold. Tænk over det:Hvert tag kan være på flere indlæg, og hvert indlæg kan have flere tags.

Den korrekte relationsarkitektur til dette er at tilføje endnu en tabel i midten som denne:

CREATE TABLE post_tags (
  id INTEGER REFERENCES posts,
  tag VARCHAR REFERENCES tags
);

Slip derefter tags kolonne på din indlægstabel.

Dette løser alle dine problemer, fordi du kan få sættet af tags på et indlæg eller sættet af indlæg med et givet tag ved at joine post_tags i forskellige retninger. Du kan også få listen over tags, der starter med noget ved hjælp af en almindelig LIKE-forespørgsel, hvilket vil være vanskeligere, hvis du har en masse strenge sammenkædet i ét felt.



  1. SQL:Hvordan udfyldes tomme celler med forrige rækkeværdi?

  2. Hvorfor dml fejllogning ignoreret i parallel sætning

  3. Hvordan vælger man en SQL over flere partitioner?

  4. Kan ikke bruge krydstabulator i Postgres