/ / NoSQL plány príklad - sql, databáza, nosql

NoSQL plány príklad - sql, databáza, nosql

Čítam veci o NoSQL. Viem, že to nie je založené na vzťahoch, ale nemôžem zistiť, ako robiť niektoré základné veci. (A o tom som nenašiel skutočný príklad).

Chcem ukladať používateľov, príspevky a komentáre.

Verzia SQL:

user"s table: user_id, username
posts"s table: post_id, user_id, content
comments"s table: comment_id, content

Ok, jednoduché.

V systéme NoSQL, čo som navrhol, je (100% funkčný, momentálne nepoužívam žiadne technológie ako MongoDB atď.):

users:
{
id: XX,
username: "John"
},
{
id: OO,
username: "Mike"
}

posts:
{
id: YY,
content: "How are you all ?",
user: {
id: OO,
username: "Mike"
},
comments: {
id: ZZ,
content: "Fine",
user: {
id: XX,
username: "John"
}
}
}

Mohol som uložiť id používateľa do príspevkov a komentárov namiesto celého užívateľa, ale používam NoSQL, nie SQL, takže to nerobím.

Najprv ? Je tento dátový model v poriadku pre aplikáciu NoSQL?

Po druhé, ak áno na predchádzajúcu otázku, čoak používateľ XX (John) zmení svoje používateľské meno pre "Tony"? Potenciálne budem musieť aktualizovať všetky príspevky od neho, a to isté pre každý komentár? Poďme si predstaviť, že vysielal počas svojho užívateľa život, 10 000 + komentáre, wtf. Takže hádam, že to robím zle.

Môžete objasniť svoje mylné predstavy?

odpovede:

0 pre odpoveď č. 1

Problém s otázkou spočíva v tom, že predpokladávšetky databázy NoSQL pracujú rovnakým spôsobom, na základe problému, ktorý vyzerá, že vaša otázka môže súvisieť s tým, ako ukladať dokumenty "JSON" (JSON) do databázy takým spôsobom, že si ich môžete prevziať neskôr, odpoviem na to z hľadisko dokumentu:

Ako ste už zistili, NoSQL neposkytuje avzťahy, a preto budete musieť zvládnuť to ručne. V dešom normalizácii v systéme NoSQL je zvyčajne prvým krokom, ako zabezpečiť, aby ste doklady mohli získať v menej okrúhlych zájazdoch do databázy, preto je váš typ priblíženia pridávania mena používateľa do príspevkov.

Problém, ktorý uvádzate, je úplne platný,čo sa stane, ak sa zmení meno používateľa? to je platné, ale nie celkom reálne, mená používateľov v blogu sú zvyčajne kľúčom k všetkému, takže zmena je to druh veľkej zmeny, a nie je povolené normálne.

Ak chcete vykonať vzťahy, môžete načítaťdokumenty s id neskôr a uložte ID, ak je to potrebné, takže normalizujete svoju databázu rovnakým spôsobom ako v SQL svete, v tomto prípade budete musieť použiť indexy na zabezpečenie dobrého výkonu, ak je id užívateľ a nie vnútorný identifikátor dokumentu alebo použite používateľské meno ako ID samotného dokumentu. V djondb bude niečo ako:

{
"_id": "myuser",
"name": "Cross"
}

a blog bude mať

{
"userid": "myuser",
"content": "Hello world"
}

Teraz čo, ak potrebujete aktualizovať niekoľko dokumentov ?, v takom prípade budete potrebovať djondb, databázu dokumentov podporujúcu transakcie v rámci viacerých dokumentov, aby bola vaša databáza konzistentná

Viac informácií o modelovaní dát: http://djondb.com/nosql-masterdetail-sample/

Viac informácií o transakciách v djondb: http://djondb.com/section/transactions/

Odmietnutie zodpovednosti: Pracujem s djondb, takže som vždy skreslená!

Dúfam, že to pomôže,