Разница между JSONField и ArrayField - PullRequest
0 голосов
/ 13 марта 2020

Следующий случай

[{type: x, val: y}, {...}, {...}, ...]

может быть представлен только одним JSONField.

Кроме того, следующий случай

[1,2,3,4,5]

может быть представлен JSONField.

Тогда какой смысл использовать ArrayField?

Правильно ли считать, что JSONField охватывает все случаи ArrayField?

1 Ответ

1 голос
/ 13 марта 2020

Нет, вы не правы в этом предположении. Вы можете создать массивы PostgreSQL любого типа, которые поддерживает PostgreSQL, но JSON поддерживает только строки, целые числа, числа с плавающей запятой, логические значения, объекты стиля JavaScript и массивы.

Например, Вы можете создать массив временных отметок или дат, но для сохранения этих типов в JSON вы заканчиваете преобразование их в строки (или иногда числа) и сохраняете эти строки. Затем, если вам нужно использовать функции или операторы времени, вам придется выкопать строки из массивов JSON, преобразовать их в метки времени или даты и, наконец, применить функции или операторы.

Аналогично для всех других типов данных , которые PostgreSQL понимает, что JSON нет.

Функции массива и операторы и JSON (массив) функции и операторы сопоставимы, а типы данных - нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...