2015-12-09 1 views
0

Может ли кто-нибудь привести пример того, что это предложение пытается передать? Я не уверен, что понимаю.Что подразумевается под этим предложением о JSON в документах Postgresql?

С сайтом Postgresql (документы):

«JSON документы должны каждый представляет собой атомные геодезический, что бизнес-правила диктуют не может разумно быть разделены на более мелкие датумы, которые могут быть изменены независимо друг от друга»

http://www.postgresql.org/docs/9.4/static/datatype-json.html

+2

Почему вы отметили это как «MongoDB»?!? – Philipp

+2

Что именно вы не понимаете? Когда вы не уверены, что поняли это правильно, как вы думаете, что это значит? Мы не можем написать полезный ответ без подсказки, что вы делаете и еще не знаете. Например, мы не знаем, знаете ли вы, что такое «атомарная дататума», или какие общие рекомендации по нормализации базы данных (которые намекаются на «разумно далее подразделяются на более мелкие данные»). – Philipp

+0

Каков пример «атомной базы данных» и что такое пример документа, который «не может быть разумно дополнительно разделен» и каков пример документа, который можно «разделить»? @Philipp – mgcdanny

ответ

0

Принцип заключается в том, что в PostgreSQL для обновления json-документа необходимо обновить документ json и всю строку, содержащуюся в *. Поэтому вы должны держать их маленькими и разделить их там, где это необходимо.

Например, вместо JSON документ, как:

{ 
"someobjects": [ 
    { 
    "a": 1, 
    ... 
    }, 
    { 
    "b": 2, 
    ... 
    }, 
    ... 
    ], 
"otherobjects": [ 
    ... 
    ] 
} 

это, вероятно, лучше, чтобы нормализовать его на две таблицы someobjects и otherobjects, каждый из которых хранит отдельные someobject JSon документы.

Использовать json, где данные являются свободной формой или переменной структурой. Нормализовать, где это не так.


* PostgreSQL часто может избежать переписывания копии других крупных месторождений в той же строке, если они хранятся вне строки с помощью TOAST, которая происходит автоматически в случае необходимости.

+0

Когда вы говорите: «держите их маленькими и разделяйте их», это также означает использовать несколько столбцов json вместо одного столбца и сбрасывать все json в него? – mgcdanny

+0

@mgcdanny Может быть, это подходит, но обычно я так не думаю. Более того, если у вас есть json-документ, содержащий массив объектов размером 200000, вы, вероятно, захотите сохранить его как 200000 строк в таблице, где каждый объект представляет собой отдельную строку, а не одну строку базы данных с документом монстра json. Что-то в этом роде. Нет жесткого и быстрого правила; речь идет о компромиссах и зависит от потребностей приложения и того, почему вы используете json в первую очередь. –

 Смежные вопросы

  • Нет связанных вопросов^_^