PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Relacje jeden-do-wielu w (Postgre)SQL

To, co naprawdę się tutaj dzieje, to związek wielu do wielu. Pomyśl o tym:każdy tag może znajdować się na kilku postach, a każdy post może mieć kilka tagów.

Właściwą architekturą relacyjną do tego celu jest dodanie kolejnej tabeli pośrodku w następujący sposób:

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

Następnie upuść tags kolumna w tabeli postów.

To rozwiązuje wszystkie twoje problemy, ponieważ możesz uzyskać zestaw tagów na poście lub zestaw postów z danym tagiem, łącząc się z post_tags w różnych kierunkach. Możesz również uzyskać listę tagów, które zaczynają się od czegoś, używając zwykłego zapytania LIKE, co będzie trudniejsze, jeśli masz kilka ciągów połączonych w jednym polu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Runtime.getRuntime().exec, aby przekazać parametr po wyświetleniu monitu

  2. Wartości w kolumnach PostgreSQL muszą być w sekwencji

  3. Wstawiaj dane w 3 tabelach jednocześnie za pomocą Postgres

  4. NLlogowanie do połączenia PostgreSQL

  5. postgresql nie pojawia się w źródle danych podczas generowania .ADO.net Entity Data Model