Diskuze: Ukládání dat do databáze
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
nechápu otázku.. každopádně:
SQL - M:N vazební tabulka, případně stringy oddělené nějakým delimiterem, pokud jsou ty tagy immutable a nevadí ti denormalizovaný tvar, tak nemusíš mít vůbec napojení článku na záznam v tabulce tagů, jelikož je jasná identita tagu = je to prostě string, co je immmutable = jiný string -> jiný tag...
NoSQL . pole stringů, opět... tag je immutable, takže nemusíšě mít vůbec refku..
= nějaká kolekce / tabulka tagů ti slouží pouze pro vkládání (hledání existujících tagů).
Úplně to nechápu. Databáze bude určitě SQL.
Když bude M:N vazební tabulka, tak budu mít například tabulky ArticleTags, kde když bude mít článek například 2 tagy, tak bude mít 2 zápisy v databázi?
Ještě jsem nad tím přemýšlel a bude tagy budou buď formou checkboxů, případně <select> s možností výběru více než jednoho prvku.
Je blbost to ukládat jako pole, nebo je lepší to uložit jako string s oddělovači jak píšeš? Ukládat tyto data ještě do solo databáze mi přijde trošku zbytečné, to spíše ale říkám z mé nezkušenosti, nevím co je lepší.
Jestliže máš (pokud jsem to správně pochopil) tagy v extra tabulce, ze které si můžeš vybrat, spáchej si ještě jednu tabulku (vazební) kde bude ID článku a ID tagu. Pak si k jednomu článku můžeš dát tagů, kolik chceš...
pointa te samostatne tabulky, neni pro cteni tagu,ale po napovedu uzivateli...
chceš pokud možno zamezit tomu,, aby si měl tagy:
"auto, auto, Auta, auticka, Automobil" a budeš chtít podle tagů hledat... ale nechces to delat strong pravidlo.. takže sice budeš mít ty tagy uloženy přímo v DB u Articlu, aby si kvuli takové hlouposti nemusel dělat vazební tabulku, jak tady někdo navrhuje (neboli, proč jednoduše do proměnné uložit hodnotu, když můžeme na její hodnotu udělat 2 joiny do databáze ^_^ ) ...
...
Ale ty ulozene tagy budes mit pro autocomplete - pro napovídání..
Tj. V db muzes mit klidne
ArticleId Name Tags
GUID Pepa auta@holky@sex@phpsuxx
Pokud ti nevadí denormalizovaný tvar.
A na zobrazení článku a jeho tagu nepotřuješ žádný join (ani 2 joiny přes M:N tabulku).
Zároveň ale přeci jen budeš mít tabulku
TagId value
guid auta
guid holky
guid sex
guid phpshit
z toho duvodu, aby si mohl v tom Autocompletu co budeš mít na frontendu v editaci tagů uživateli napovídat a on tam nevkládat duplicitní hodnoty. Už se chápeme?
Celé co si z toho máš odnést je to.. že tag je POUZE string.. a string má definovanou identitu sám sebou a je immutable.. Jakmile změníš "maminka" na "tatínek" tak už to není to samé... Z toho důvodu si můžeš dovolit tu hodnotu uložit takto napřímo jako řetězec do Articlu.. protože jsi schopný jendoduše spárovat na zákaldě toho, že je to "maminka" a ne "tatínek" a nepotřebuješ žádné IDčko, ani další hlouposti.
Zobrazeno 7 zpráv z 7.