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

Rails поле, което е масив от JSON обекти?

Тъй като използвате postgres, имате късмет:postgres има собствен json Тип. Това е много по-добре от използването на сериализиране за съхраняване на данните като някаква форма на кодиран низ, защото postgres има богато семейство от оператори, които ви позволяват да правите заявки срещу тези json данни.

Ако използвате postgres 9.4, тогава можете да използвате и типа jsonb. Това обикновено е по-добре, тъй като съхранява обработена версия на данните (т.е. не се налага да преработва данните отново и отново) и позволява индекси.

Rails поддържа това веднага (вижте тук ), просто трябва да добавите колона от тип json(b). Ако вашата миграция съдържа

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

след това

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

ще създаде ред със хранилището на данни за точките на щети като 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. Как да променя стойността на единично свойство в типа данни PostgreSQL JSONB?

  2. Неуспешно зареждане на sql модули в клъстера на базата данни по време на инсталацията на PostgreSQL

  3. 8 Нови функции за съвместимост на Oracle в EnterpriseDB PPAS 9.2 Beta

  4. Как да преобразувате тип bytea до двойна точност

  5. Актуализация на Postgresql с присъединяване