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

Czy JSONB sprawia, że ​​tablice PostgreSQL są bezużyteczne?

W większości przypadków użyłbym znormalizowanego schematu z tabelą option_tag implementacja relacji wiele-do-wielu między tabelami option i tag . Implementacja referencyjna tutaj:

Może nie jest to najszybsza opcja pod każdym względem, ale oferuje pełen zakres funkcjonalności bazy danych, w tym integralność referencyjną, ograniczenia, pełen zakres typów danych, wszystkie opcje indeksowania i tanie aktualizacje.

Aby uzyskać kompletność, dodaj do listy opcji:

  • hstore (dobra opcja)
  • xml bardziej gadatliwy i bardziej złożony niż którykolwiek z hstore lub jsonb , więc używałbym go tylko podczas pracy z XML.
  • "ciąg wartości oddzielonych przecinkami" (bardzo prosta, w większości zła opcja)
  • EAV (Entity-Attribute-Value) lub „pary nazwa-wartość” (przeważnie zła opcja)
    Szczegóły w tym powiązanym pytaniu na dba.SE:

Jeśli lista jest tylko do wyświetlania i rzadko aktualizowana, rozważyłbym zwykłą tablicę, która jest zwykle mniejsza i działa lepiej niż reszta.

Przeczytaj wpis na blogu Josha Berkusa Link do @a_horse w jego komentarzu. Należy jednak pamiętać, że skupia się on na wybranych przypadkach przeczytania. Josh przyznaje:

I tu właśnie wygrywa znormalizowane podejście, zwłaszcza gdy często zmieniasz pojedyncze tagi przy jednoczesnym ładowaniu.

jsonb jest dobrą opcją, jeśli i tak zamierzasz operować z JSON, i możesz przechowywać i pobierać JSON „tak jak jest”.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL DISTINCT ON z innym ORDER BY

  2. Przegląd oferty Amazon RDS i Aurora dla PostgreSQL

  3. Dopasowywanie wzorców między wieloma kolumnami

  4. Nazwy kolumn z podziałami wierszy

  5. Zamień reprezentację daty postgres w ciąg ISO 8601