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

Pole rails, które jest tablicą obiektów JSON?

Ponieważ korzystasz z postgresa, masz szczęście:postgres ma natywny json rodzaj. Jest to o wiele lepsze niż używanie serializacji do przechowywania danych jako jakiejś formy zakodowanego ciągu, ponieważ postgres ma bogatą rodzinę operatorów, które umożliwiają wykonywanie zapytań dotyczących tych danych json.

Jeśli używasz postgres 9.4, możesz również użyć typu jsonb. Jest to generalnie lepsze, ponieważ przechowuje przetworzoną wersję danych (tzn. nie musi powtarzać ponownej analizy danych w kółko) i umożliwia indeksowanie.

Railsy obsługują to po wyjęciu z pudełka (zobacz tutaj ), wystarczy dodać kolumnę typu json(b). Jeśli migracja zawiera

create_table :damages do |t|
  t.string :description
  t.jsonb :damage_points
end

następnie

Damage.create(damage_points:  [{left: 40, top: 99}, {left: 100, top: 35}])

utworzy wiersz z magazynem danych punktów uszkodzeń jako json. Jedyną rzeczą, na którą należy zwrócić uwagę, jest to, że chociaż dane wejściowe mają symbole jako klucze w hashach, podczas pobierania z bazy danych zawsze otrzymasz ciągi jako klucze.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zwiększyć wartość w oświadczeniu aktualizacji postgres na kluczu JSON?

  2. Przechowuj interwał czasowy w PostgreSQL od Rails

  3. Jak odświeżyć wszystkie zmaterializowane widoki w Postgresql 9.3 na raz?

  4. Jak sprawdzić stan serwera PostgreSQL Mac OS X?

  5. Jaki jest właściwy indeks do odpytywania struktur w tablicach w jsonb Postgresa?