Autor Zpráva
barkel
Profil
Nakódil som si komentáre pod článok, komentáre sú napísané v type scripte a React-e (ale budú sa predrenderovať kôli seo) zatiaľ mám hotový FE so serverom komunikuje cez ajax.

Na FE časti sa používa takáto entita reprezentujúca jeden príspevok: Príspevok môže obsahovať aj reakcie. Pôvodne som ich chcel uladať do relačnej DB ale načo konvertovať JSON strom na tabuľku a potom spať? Viem ako na to ale je to zbytočná komplikácia. Chcem si to zjednodušiť. Aby som ukladal priamo to s čím naozaj pracujem.

export type TComment = {
    id: string;
    nick: string;
    email: string;
    dateTime: string;
    content: string;
    replies: TComment[];
    identity: {
        userId: number | null;
        articleId: number;
        ip: string;
        host: string;
    }
}

Neviete mi odporučiť nejakú vhodnú DB ktorá by sa hodila na ukladanie stromu JSON objektov? Teda asi neujakú objektovú alebo dokumentovú? kde by sa dali ale robiť aj nejaké jednoduché dotazy... Priamo do súboru to vkladať nechcem kôli bezpečnosti a atomicite.
RastyAmateur
Profil
barkel:
Když jsem tvůj (z mého pohledu absurdní) dotaz říkal spolubydlícímu, vzpomněl si na MongoDB. Podle wikipedie je dokumentová, což chceš a nějaké dotazy by se do ní také měly dát dělat.

Moje rada je použij normální relační databáze, převod stromu na tabulku a zpět je otázka jednoho až dvou cyklů, tj. v průměru tak 8 řádek.
barkel
Profil
RastyAmateur:

Moje rada je použij normální relační databáze, převod stromu na tabulku a zpět je otázka jednoho až dvou cyklů, tj. v průměru tak 8 řádek.

Stačí na to jedna rekurzívna funkcia, ale ja nechcem robiť stále dookola to isté. Ja sa chcem niečo nové naučiť. A komentáre pre mňa nemajú veľkú dôležitosť preto si chcem na nich niečo nové vyskúšať. Okrem toho dnes sa všade používa OOP a OOP si najlepšie rozumie s OODBMS. Prečo vznikajú ORM Frameworky? Aby si ten objektový svet aspoň trochu rozumel s RDBMS . Pritom keby sme hneď na začiatku zvolili správnu DB tak by sme nemuseli jednu záplatu plátať inou záplatou.

Mongo bolo prvé čo som včera skúsil, ale má to na môj vkus trošku neintuitívne rozhranie. Dáta sa čítajú cez nejaké kurzory. Tiež ma prekvapilo že kontext (MongoClient) neimplementuje IDisposable takže nechápem kedy sa uvolňujú prostriedky. A tie názvy metód neviem kto ich vymýšľaľ ale v názvoch InsertOne, FindAsync som sa strácal a toto sortovanie ma zabilo:

var filter = Builders<BsonDocument>.Filter.Empty;
var sort = Builders<BsonDocument>.Sort.Ascending("time");
collection.FindAsync(filter, new FindOptions<BsonDocument, BsonDocument>()
{
    Sort = sort
});

Síce som tie komenty som nakoniec úspešne dokončil... Ale teraz ich prepisujem. Skúšam objektovo - grafovú DB VelocitDB. Pričom do Databázy sa dajú serializovať nie len anemické, ale rovno plnokrvné objekty velocitydb.com/Samples a uloží sa celý ich aktuálny vnútorný stav. Má to aj celkom zrozumiteľné rozhranie a podporuje to transakcie, dobre si to rozumie aj s LINQ... Páči sa mi to, len zase GUI tooly nevyzerajú moc prívetivo. Ale nevadí - nič nie je dokonalé. Ak ma táto databáza v niečom nesklame, tak možno pri nej ostanem a pri ďalšom projekte ju použijem ako hlavnú.

Vaše odpověď

Mohlo by se hodit

Nezapomeňte na odkaz na živou ukázku problému.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0