Autor Zpráva
srigi
Profil
Hi,

kcem sa opytat, ked vyrobim web app, ktora uklada HTML obsah do DB, povedzme v takej forme, ze mam taulku "clanky" a kazdy jeden zaznam (record - riadok) obsahuje jeden clanok.

Ako tieto app riesia, ze na jednu stranku (zaznam v DB) mozem umiestnit neobmedzeny pocet napr. odstavcov? Priklad:

tabulka clanky:
id, nadpis, perex, ods1, ods2, ods3, ods4


Takyto sposob je ale IMHO neefektivny, pretoze nemozem pridat dalsi odstavec. PLS poradte ako sa toto riesi (asi tabulkove vztahy M:N). Mozete strucne popisat taketo riesenie?

THX.
Kajman_
Profil *
1:N

tabula clanky
id_clanku, nadpis, perex

tabulka odstavce
id_clanku, id_odstavce, pozice, text

M:N (Pokud má být jeden odstavec ve více článcích...)

tabula clanky
id_clanku, nadpis, perex

tabulka vazba
id_clanku, id_odstavce, pozice

tabulka odstavce
id_odstavce, text
srigi
Profil
THX, este otazka.
tabulka odstavce

id_clanku, id_odstavce, pozice, text
predpokladam, ze id_odsavce je AutoIncrement a PrimaryKey. Je tak?
Kajman_
Profil *
Třeba. PK mohou být i oba první sloupečky. Záleží na vkusu.
Mastodont
Profil
Nemohu si pomoci, ale ukládat odstavce samostatně je hovadina. Datový typ TEXT nebo MEDIUMTEXT a hotovo.
BetaCam
Profil
Přesně jako Mastodont nechápu důvod takového řešení. Proč bych měl ukládat odstavce zvlášt? Co to má za výhodu? Tohle mi přijde přesně jako podle hesla "Proč to dělat jednoduše když to de složitě."
Kajman_
Profil *
Třeba, aby byl jeden odstavec ve více článcích a pak stačí ho upravit jen jednou? Třeba v různých manuálnech podobných výrobků se odstavce opakují.

A ty odstavce byly jen příkladem.
BetaCam
Profil
Třeba, aby byl jeden odstavec ve více článcích a pak stačí ho upravit jen jednou?

Ano to jiste. Z pohledu DB teoretiků je tento přístup v pořádku nevzniká redundance, ale z praktického hlediska mi to přijde trochu na levačku. Zásahem do jednoha záznamu můžu ovlivnit klidně 20 článků jenže pak nastává problém co když ten odstavec pak už bude dávat smysl už jen v 5ti článcích. V lepším případě o tom budu vědět a pro těch 5 článků udělám novej odstavec a přepíšu ID v tom horšim na to zapomenu a budu v 15 článcích publikovat kraviny. Chápu, že to byl jen příklad a že v určitejch případech by to zdrejmě mělo své výhody, ale myslim si, že v 99,999% případů je takovejhle návrch DB zcestnej.
Mastodont
Profil
Kajman_
Vzhledem k tomu, že s manuály pracuji, tak vím, že ve většině případů ten text úplně shodný není.

v 99,999% případů je takovejhle návrch DB zcestnej
Asi tak.
Kajman_
Profil *
Byl to příklad, tak si tam představte třeba komentáře nebo obrázky místo odstavců :-)
srigi
Profil
Takze ked sa pozeram na nejaky clanok na webzine, je s velou pravdepodobnostou ulozeny v DB ako typ TEXT alebo MEDIUMTEXT? Proste je tam zaznam kompletneho HTML textu so znackamy (tagmi)?

A samozrejme bol to iba priklad, kcel som vediet ako sa ukladaju nejake entity udajov, ktorych pocet nie je predom znamy, vzhladom na inu entitu.
Mastodont
Profil
srigi
Ano, s velkou pravděpodobností je uložen jako celek, někdy se ale vyskytuje i dělení do dvou částí - úvod a hlavní část článku (v tom případě se krátký úvod vypisuje v seznamu článků).
Alphard
Profil
ještě jsem se nesetkal se zapisováním odstavců zvlášť, většinou vidím rozdělení na nadpis, perex a text

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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