Autor Zpráva
IdemeNaHavaj
Profil
Ahoj,

chystám si systém na vytváranie kalendárov priamo v prehliadači na webe, používam k tomu MariaDB, php, javascript atď..
Než začnem, chcel by som požiadať o radu ako odporučíte tvar databázy.

Do databázy by sa malo uložiť všetko čo sa bude dať nastavovať - vlastná fotka, pozícia, dôležité dátumy, farba zvýraznenia víkendov, sviatkov, atď
Prvé čo ma napadlo je vytvoriť jednu tabuľku s názvom trebarz "kalendare" a do nej iba dva stĺpčeky:
id | obsah
Do pola ID automaticky číslo kalendára a do obsahu ma napadlo vkladať dlhý JSON string, ktorý by všetky nastavenia obsahoval a následne niekde v administrácií načítavval do formátu pre tlač, rovnako ako by z tejto databázy čítal aj samotný creator v prípade ked sa človek vráti z košíka speť na editáciu a tak... Neviem ale či je to múdre riešenie. Preto žiadam o radu.


Druhé čo ma napadlo je, urobiť dve rôzne tabulky:
kalendare | mesiace
kde by som to ukladal asi takto:


No neviem ani to či je múdre.. Poraďte prosím, ako by ste to vyriešili vy takúto databázu?
Tomášeek
Profil
IdemeNaHavaj:
No neviem ani to či je múdre
Moc ne.

Jednotlivé záznamy ukládej jednotlivě, ne hromadně ve fromátu JSONu. Jakákoliv operace s tím pak bude snadná, zatímco ve tvém případě... buď nemožná, nebo složitá.

Tzn. tabulky zhruba takto:

- kalendare (id | typ)
- dny (id | kalendar_id | datum [date])
- events (id | den_id | event | value) - event např. zvyrazneny/meniny/..., value true/Eliška/... (co událost, akce, event, to jeden vlastní řádek, den jich může mít X)

Pokud bude mít každý měsíc vlastní obrázek, tak přibude tabulka měsíc ekvivalentní s tabulkou dny (id | kalendar_id | obrazek), pokud by měl mít měsíc více dat, tak je možno je vložit do tabulky events, kde den_id = mesic_id - nevím, jaká data tam plánuješ.
Radek9
Profil
IdemeNaHavaj:
S tím JSONem v DB si dávej velký pozor. Jsou případy, kdy je to velice výhodné. Zrovna tenhle případ použití je ale očividně špatně. Správným řešením by bylo pro každou část udělat zvláštní tabulku. V první řadě si nakresli všechny entity, které tam potřebuješ, a mezi nimi relace. Jakmile se ti v tom tvém JSONu nějaké struktury opakují, je lepší to převést na tabulku.
Keeehi
Profil
IdemeNaHavaj:
Ono to záleží, co vlastně chceš s tou konfigurací dělat. Jestli ji potřebuješ jen ukládat a načítat pak id | obsah vlastně není špatný návrh. Pokud bys chtěl třeba zjišťovat, kolik kalendářů má 24.8. označeno jako významný den, pak ano, pak by to nebylo dostatečné. Jelikož to má ale sloužit vlastně jako skladiště konfiguračních souborů, pak to jako špatný návrh nevidím.

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: