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

JSONB прави ли PostgreSQL масивите безполезни?

В повечето случаи бих използвал нормализирана схема с таблица option_tag прилагане на връзката много към много между таблиците option и tag . Референтна реализация тук:

Може да не е най-бързата опция във всяко отношение, но предлага пълната гама от функционалности на DB, включително референтна цялост, ограничения, пълната гама от типове данни, всички опции за индексиране и евтини актуализации.

За пълнота добавете към списъка си с опции:

  • hstore (добър вариант)
  • xml по-подробен и по-сложен от всеки hstore или jsonb , така че бих го използвал само когато работя с XML.
  • "низ от стойности, разделени със запетая" (много проста, най-вече лоша опция)
  • EAV (Entity-Attribute-Value) или „двойки име-стойност“ (предимно лоша опция)
    Подробности под този свързан въпрос на dba.SE:

Ако списъкът е само за показване и рядко се актуализира, бих помислил за обикновен масив, който обикновено е по-малък и се представя по-добре за това от останалите.

Прочетете запис в блога от Джош Беркус @a_horse, свързан към в неговия коментар. Но имайте предвид, че се фокусира върху избрани случаи на четене. Джош признава:

И това е мястото, където нормализираният подход печели много, особено когато променяте много единични тагове при едновременно натоварване.

jsonb е добър вариант само ако все пак ще работите с JSON и можете да съхранявате и извличате JSON „както е“.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Време за изчакване на заявка в pg-promise

  2. Извършване на заявки за множество таблици със сложни релации

  3. Как мога да изпълня заявка LIKE за ключ jsonb?

  4. Dense_rank първо конвертиране на Oracle в Postgresql

  5. Зареждане на драйвера на postgreSQL JDBC