PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Връзки "един към много" в (Postgre)SQL

Това, което всъщност се случва тук, е връзка много към много. Помислете за това:всеки етикет може да бъде на няколко публикации и всяка публикация може да има няколко етикета.

Правилната релационна архитектура за това е да добавите друга таблица в средата по следния начин:

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

След това пуснете tags колона в таблицата с вашите публикации.

Това решава всичките ви проблеми, защото можете да получите набор от тагове на публикация или набор от публикации с даден етикет, като се присъедините срещу post_tags в различни посоки. Можете също така да получите списъка с тагове, които започват с нещо, като използвате обикновена заявка LIKE, което ще бъде по-трудно, ако имате куп низове, свързани в едно поле.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgres sql, как да се увеличи, когато съществува null

  2. Pivot в Postgresql с маркировки TRUE/FALSE

  3. Конструиране на низ от няколко записа с 2 колони

  4. Подходящи стойности за -Infinity &Infinity в Postgres

  5. Как да направя подзаявка на Postgresql в клауза за избор с клауза за присъединяване от като SQL Server?