sql >> Databáze >  >> RDS >> PostgreSQL

Vztahy One-to-Many v (Postgre)SQL

To, co se tady ve skutečnosti děje, je vztah mnoho k mnoha. Přemýšlejte o tom:každý štítek může být na několika příspěvcích a každý příspěvek může mít několik štítků.

Správnou relační architekturou je přidat doprostřed další tabulku takto:

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

Poté odstraňte tags sloupec v tabulce příspěvků.

To vyřeší všechny vaše problémy, protože můžete získat sadu značek na příspěvku nebo sadu příspěvků s daným štítkem spojením proti post_tags v různých směrech. Seznam značek, které začínají něčím, můžete také získat pomocí běžného dotazu LIKE, což bude obtížnější, pokud budete mít v jednom poli zřetězenou spoustu řetězců.



  1. bind_param() nutné pouze u hodnot zadaných uživatelem nebo všech?

  2. Odstraňování problémů Oracle - zablokovaný proces

  3. Uložená procedura a kurzor Oracle

  4. Synchronizace dat mezi dvěma různými databázemi