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

doktryna kolumna JSON w postgresql przechowuje obiekty lub tablice tych samych danych

Szalone rekwizyty dla @Dave'a Redferna na Slacku, który zwrócił mi uwagę na mój problem. Podczas przekazywania niezerowej tablicy indeksowanej jest ona interpretowana jako obiekt.

dump(json_encode([
    0 => "ROLE_SITE_DIRECTOR", 2 => "ROLE_TRANSLATOR", 1 => "ROLE_DATA_ENTRY",
]));
dump(json_encode(array_values([
    0 => "ROLE_SITE_DIRECTOR", 2 => "ROLE_TRANSLATOR", 1 => "ROLE_DATA_ENTRY",
])));

wyjściem będzie:

"{"0":"ROLE_SITE_DIRECTOR","2":"ROLE_TRANSLATOR","1":"ROLE_DATA_ENTRY"}"
"["ROLE_SITE_DIRECTOR","ROLE_TRANSLATOR","ROLE_DATA_ENTRY"]"

Więc poprawka jest prosta, jestem moim seterem:

$this->roles = array_values($roles);

Idąc dalej, lepszą praktyką jest również używanie relacji bazy danych do ról. Wyszukiwanie według danych JSON nie jest zabawne, ale w łączeniu jest standardową praktyką.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaka jest domyślna nazwa ograniczenia w PostgreSQL?

  2. Jak pobrać jeden losowy element z bazy danych w Django/postgreSQL?

  3. Zapytanie SQL, aby uzyskać wszystkie wartości, jakie może mieć wyliczenie

  4. Jak wypróbować wiele opcji SELECT, aż wynik będzie dostępny?

  5. Jak zaktualizować wiersze w bazie danych wartościami z data.frame w języku R warunkowo?