A JSON mysql

Ha dolgozik az SQL adatbázisok, akkor biztosan egyetértenek abban, hogy a tervezési struktúra egyszerűbbnek tűnik, mint amilyen valójában. SQL Database hisznek szerkezetét, és emiatt nevezik Structured Query Language.

Másrészt ma már nem kevésbé népszerű NoSQL adatbázisokat, amelyek szintén nevezik séma nélküli - ezek szigorúan véve nem kötődik egy adott szerkezetben, és nincs strukturális korlátai.

Természetesen minden eszköz saját körét, néha kombinációjára van szükség a megoldásokat. Mi van, ha erősen strukturált, egyes részei az alkalmazást, és bizonyos, hogy a rugalmas? MySQL verzió 5.7.8 bevezetett egy új típusú adatok - JSON, amely lehetővé teszi számunkra, hogy megoldja ezt a problémát.

Miért használja JSON

Ezen a ponton, akkor valószínűleg azt kérdezi magától, vajon miért kell használni JSON, így amikor MySQL megbirkózik funkcióit.

Nézzünk egy példát. Tegyük fel, hogy hozzon létre egy webes alkalmazás, ahol meg kell menteni az egyéni beállításokat az adatbázisban. Általános szabály, hogy hozhat létre egy külön oldalt a id területeken. user_id és értékek, vagy mentse őket egy bizonyos méret húr, és feldolgozni a futás során. Ez jól működik, ha van egy pár számára. Ha van több ezer felhasználó és öt beállító kulcsokat, ez már öt ezer bejegyzés, amely ennek ellenére csak egy kis része az alkalmazás. Elemzés formátumú karakterlánc csak létrehoz egy újabb terhet a futás közben. Segítségével JSON ebben az esetben lehet menteni a forrásokat, csökkentse a rekordok száma az adatbázisban, és a számos kiegészítő kéri.

Mielőtt belevetik magukat a tanulmány JSON alkalmassága, szükségünk van egy példa a bázis a munkából. Tehát először felvázolni a szerkezetet. Mi meg fogja vizsgálni az esetben, amikor egy online áruház, ahol több márka és a különböző elektronikai. Mivel a különböző modulokat különböző attribútumok (vesd össze Macbook vákuum) tipikusan használt modell Entity-Képesség-érték (EAV) modell. De feladására, mint az általunk használt JSON.

Adatbázisunk fogják hívni a boltba, és három asztal - márkák. kategóriák és termékek. Asztalok márkák és kategóriák nagyon hasonló, és csak az azonosító és a nevet.

Most hozzon létre egy termék asztal, név mezőt. brand_id. category_id és attributes`.

A keret meghatározza két idegen kulcsok mezők és brand_id category_id. a táblázat márkák és kategóriák, ill.

attribútumok területén definiálták JSON, amely lehetővé teszi számunkra, hogy használja rendelkezésre MySQL JSON-funkciós ezen a területen.

Ez a szerkezet az adatbázis kaptunk a végén.

A JSON mysql

Létrehozása táblázat bejegyzések JSON területén igen egyszerű. Minden, ami szükséges -, hogy adjon meg egy érvényes JSON ezen a területen a betét kérelmet.

Továbbá, ahelyett, JSON objektum kódolni, akkor használhatja a beépített függvény JSON_OBJECT. Ez a függvény egy listát a kulcs-érték pár formájában JSON_OBJECT (kulcs1, érték1, kulcs2, érték2, ... kulcs (n), értéket (n)), és visszatér a JSON objektumot.

Érdemes odafigyelni, hogy a funkció JSON_ARRAY. amely vissza egy tömbben JSON objektumot.

Ha megad egy kulcsot többször - csak az első kulcsértékpár fogják használni. Továbbá, a gombok vannak rendezve és tisztítani, szóközzel.

A másik funkciója, hogy működjön együtt JSON - JSON_MERGE. A függvény néhány JSON objektumot, és visszaad egy kombinált.

A JSON_MERGE átadjuk csak tárgyakat. Némelyikük létre JSON_OBJECT. Ön bontott korábban. Ha JSON_MERGE gombot többször megismételjük, akkor annak értéke összevonásra kerül egy tömbben.

Megnézhetjük az eredményt használatával JSON_TYPE funkciót. amely visszaadja a típus a tárolt érték.

Szóval, van több termék adatbázisunkban.

A hétköznapi MySQL lekérdezés WHERE záradék meglehetősen egyszerű - meg kell adnia egy olyan területen, az üzemeltető és értéke. Mert JSON mezők, nem fog működni.

Válassza ki a kívánt vonalak JSON területen kell ismernie a koncepció az utat. A legegyszerűbb példa az út - CSS választók. A második rész a puzzle - a funkció JSON_EXTRACT. amely veszi érvek utat mozgás JSON objektumot.

Például, mi érdekli a TV egy HDMI port, vagy USD.

Ha frissíteni kívánt értékeket használni JSON JSON_INSERT. JSON_REPLACE és JSON_SET funkciót. Ezek a funkciók is szükség oly módon, hogy jelezze, amely része a JSON objektumot szeretnénk változtatni. A levezetés ezen funkciók - érvényes JSON objektumot a módosítások alkalmazásához.

Way $ .chipset chipset határozza meg a helyét a objektum tulajdonságait gyökér.

Nézzük frissíti a tulajdonságait chipset segítségével JSON_REPLACE.

Végül mi maradt JSON_SET funkciót, és arra használjuk, hogy frissítse a TV-k.

Ezek a jellemzők azonosnak tűnnek, de van egy különbség a viselkedésüket. JSON_INSERT tulajdonságokat adni egy tárgy csak akkor, ha az még nem létezik. JSON_REPLACE helyettesíti a tulajdonság csak akkor, ha létezik. JSON_SET ingatlan hozzáadja vagy kicseréli azt, ha az már létezik.

Itt nézd meg a két esetben az adatok törlését.

Eredeti - eltávolítása egy adott kulcs-érték mezőket a JSON, második - sorok törlése teljesen azzal a feltétellel, JSON területeken.

Például, már nem nyújt információt mount_type kamerák és szeretné, hogy távolítsa el az összes kamera. Mi ezt a JSON_REMOVE. amely visszaállítja a frissített nélkül JSON legfontosabb módja.

Kapcsolódó cikkek