ПредишенСледващото

Ако работите с SQL бази данни, вие със сигурност ще се съгласите, че структурата на дизайна изглежда по-лесно, отколкото е всъщност. SQL база данни вярват в структурата, и поради тази причина се наричат ​​Structured Query Language.

От друга страна днес не е по-малко популярни бази данни NoSQL, които също са посочени като схема-малко - те не са строго обвързани с определена структура и нямат структурни ограничения.

Разбира се, всеки инструмент има свой собствен характер, понякога изисква комбинация от решения. Какво става, ако твърдо да структурира, някои части на заявлението, а някои правят гъвкав? MySQL версия 5.7.8 въведе нов тип данни - JSON, което ни позволява да се реши този проблем.

Защо да използвате JSON

В този момент вие вероятно се питате защо е необходимо да използвате JSON, така че когато MySQL се справя с неговите функции.

Нека разгледаме един пример. Да речем, че се създаде уеб приложение, където трябва да спаси потребителски настройки в базата данни. Като правило, можете да създадете отделна страница с полета за самоличност. USER_ID и ценности, или да ги запишете на определен низ формат, и го анализира по време на изпълнение. Това работи добре, ако имате няколко потребители. Ако имате хиляди потребители и пет ключове конфигурация, тя е вече пет хиляди записи, които все пак са само една малка част от вашата кандидатура. Анализ форматиран низ само създава допълнителна тежест в издръжливостта й. Използването на JSON в този случай може да спаси своите ресурси, намаляване на броя на записите в базата данни и броя на допълнителните искания.

Преди да се потопите в функционалността на проучване JSON, ние се нуждаем един пример за база за работа. Така че първо скицира структурата. Ще разгледаме случая на използване на онлайн магазин, където има няколко марки и разнообразие от електроника. Тъй като различни приспособления имат различни атрибути (сравни с Macbook вакуум) обикновено се използва модел Entity-Умение-стойност (EAV) модел. Но ние се откаже от нея, тъй като ние използваме JSON.

Нашата база данни ще се нарича в магазина и има три маси - марки. категории и продукти. Маси марки и категории са много сходни и имат само идентификатора и името.

Сега създайте продукти маса с полета номер, име. brand_id. category_id и attributes`.

Нашата рамка определя два външни ключове за полета и brand_id category_id. отнасящи се до търговските марки на масата и категории, съответно.

поле атрибути се определя като JSON, което ще ни позволи да се използват налични в MySQL JSON-функционален за това поле.

Това е структурата на базата данни имаме в края на краищата.

Използване на JSON в MySQL

Създаване на запис на таблица с поле JSON е съвсем проста. Всичко, което е необходимо - е да добавите валиден JSON в тази област в искането за вмъкване.

Също така, вместо на JSON обект за кодиране, можете да използвате вградената функция JSON_OBJECT. Тази функция може да отнеме списък на двойки ключ-стойност на форма JSON_OBJECT на (key1, value1, key2, стойност 2, ... ключ (н), стойност (п)) и връща JSON обект.

Струва си да се обръща внимание на JSON_ARRAY на функция. която връща масив от JSON обекти.

Ако посочите с един бутон няколко пъти - ще се използва само първата двойка ключ-стойност. Също така, ключовете се сортират и почистват от вдлъбнатина.

Друга функция е да се работи с JSON - JSON_MERGE. Функцията отнема няколко JSON обекти и връща един единствен комбиниран.

В JSON_MERGE минаваме само обекти. Някои от тях са създадени с помощта на JSON_OBJECT. вие демонтирани по-рано. Ако JSON_MERGE ключ се повтаря няколко пъти, а след това стойността му ще бъдат обединени в масив.

Ние можем да проверите резултата с функцията употреба JSON_TYPE. която връща типа на съхраняваните стойност.

Така че, ние имаме няколко продукти в нашата база данни.

За обикновения MySQL заявка КЪДЕ клауза е съвсем проста - трябва да посочите поле, оператор и стойност. За JSON полета, които няма да работят.

За да изберете желаните линии на полето JSON трябва да са запознати с концепцията на пътя. Най-простите примери за начина, по който - CSS селектори. Във втората част на пъзела - функция JSON_EXTRACT на. който взема като аргументи път за движение, като JSON обект.

Например, ние се интересуваме от телевизор с HDMI порт или щатски долари.

За да актуализирате стойностите, които искате да използвате JSON JSON_INSERT. функция JSON_REPLACE и JSON_SET. Тези функции също се нуждаят от начин да се посочи кои части от обекта JSON искате да промените. Произхода на тези функции - валиден JSON обект, за да приложите промените.

Way $ .chipset чипсет определя местоположението на свойствата на корен обект.

Да се ​​актуализира свойствата на чипсет, използващи JSON_REPLACE.

Накрая ние останахме функция JSON_SET и ние го използваме, за да се актуализират телевизори.

Тези характеристики изглеждат еднакви, но има разлика в поведението си. JSON_INSERT добавите свойства на даден обект, само ако все още не съществува. JSON_REPLACE замества имота, само ако съществува. JSON_SET имот добавя или да го замества, ако тя вече съществува.

Тук ще разгледаме два случая на изтриване на данни.

Произход - отстраняване на конкретен полета ключ-стойност на вашия JSON, второ - изтриване на редове изцяло от състоянието на JSON области.

Например, ние вече не предоставят информация mount_type за камери и искате да го премахнете за всички камери. Ние ще направим това с помощта JSON_REMOVE. която връща Актуализираният без JSON на ключовата начин.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!