Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Pomoc s návrhem db

MD1
verified
rating uzivatele
24. 7. 2013 08:48:11
Pěkný den,
potřeboval bych poradit s následující situací:
Mám dětské tábory, ty mají na starost organizátoři. Každý tábor má (může mít) své vedoucí a v táborech jsou pochopitelně i děti.
Máme tedy dvě entity - Dětský Tábor (T) a Uživatelé (U), kteří můžou být v různých rolí -Organizátor, Vedoucí a Dítě + Admin (všechny práva).
  • Admin má všechna práva (přidává/upravuje tábory, organizátory ap.)
  • Organizátor může přidávat (vytvářet) děti a určovat vedoucí
  • Vedoucí může přidávat děti.
  • Děti práva nemají :-)
Co potřebuju je, aby když jednou vytvořím síť Tábor - Organizátor - Vedoucí - Děti, aby když smažu Organizátora či Tábor, měl nový organizátor či tábor k dispozici "síť" uživatelů.
Bohužel mě nenapadá žádná rozumná implementace řešení, které by toto splňovalo.
Máte s něčim podobným zkušenosit?
Dodám že Tábor může mít 1-N organizátorů, 0-N vedoucích a dětí.
24. 7. 2013 08:48:11
https://webtrh.cz/diskuse/pomoc-s-navrhem-db/#reply926185
tsistud
verified
rating uzivatele
24. 7. 2013 09:33:48
Co znamená síť uživatelů?
---------- Příspěvek doplněn 24.07.2013 v 09:40 ----------
Jinak: řešil bych to takto:
- tabulka "tabory"
- tabulka "osoby"
- tabulka "role"
V tabulce "role" pak budeš mít IDosoby, IDtabora a "roli" dané osoby. Takže v jednom táboře bude jeden člověk vždy jen jako organizátor nebo jako dítě. V jiném může mít jinou pozici.
24. 7. 2013 09:33:48
https://webtrh.cz/diskuse/pomoc-s-navrhem-db/#reply926184
Martin
verified
rating uzivatele
(62 hodnocení)
24. 7. 2013 09:44:51
To co se stane, když něco smažu, bych řešil na úrovni aplikace. Prostě bych tu smazanou položku nemazal natvrdo, jen přidal paramert, že je smazaná a zanechal pořád vztahy. Podřízené položky by věděly, že jsou bez nadřízeného a kdyby se přidávál nový, přebral by vztahy po starém.
24. 7. 2013 09:44:51
https://webtrh.cz/diskuse/pomoc-s-navrhem-db/#reply926183
MD1
verified
rating uzivatele
24. 7. 2013 10:14:46
tsistud: sítí mám na myslí právě to propojení kdo kde patří. Ty tři tabulky jsou v podstatě dekompozice vazby M:N (Tabor:Osoby) a nejspíš jedno z nejpravděpodobnějších řešení.
Jak píše Martin, případy kdy smažu nějáký "článek z řetězu" nemusím nutně řešit na urovni databáze.
24. 7. 2013 10:14:46
https://webtrh.cz/diskuse/pomoc-s-navrhem-db/#reply926182
tsistud
verified
rating uzivatele
24. 7. 2013 10:25:21
MD1: já už jsem to pochopil :)
Přesto ale nerozumím tomu, kde vidíš nějaký rozpad. Jestli existuje tábor a ten má přiřazené lidi a ty mu smažeš organizátora, pořád mu zůstávají přiřazené všechny ostatní osoby. A nabídnout organizátorovi tábory, které nemají organizátora, nevidím jako problém.
---------- Příspěvek doplněn 24.07.2013 v 10:30 ----------
(teď ale čtu, že bys chtěl zachovat tu skupinu i v případě smazání tábora. To už by se bez nějakého oprogramování neobešlo. Řešil bych to asi dalším sloupcem v tabulce rolí, něco ve smyslu fantomového tábora)
24. 7. 2013 10:25:21
https://webtrh.cz/diskuse/pomoc-s-navrhem-db/#reply926181
Fido123
verified
rating uzivatele
(13 hodnocení)
24. 7. 2013 11:00:36
Udělal bych to úplně stejně, jak píše tsistud a žádný rozpad tam taky nevidím, mimo toho táboru bez organizátora. To není problém databáze, zvolit nového organizátora, ale aplikace, uživatel prostě nebude moct smazat organizátora, dokud neurčí nového.
---------- Příspěvek doplněn 24.07.2013 v 11:12 ----------
No a co se týče toho "zachování skupiny", když smažeš tábor, tak všichni uživatelé ti zůstanou, o ně nepříjdeš, smažou se jenom v tabulce role jejich vazby na bývalý tábor. A pokud skutečně chceš zachovat něco něco jako spolek bývalých účastníků tábora v Horní Dolní, pak je lepší ten tábor nemazat vůbec, jenom si ho označit jako neaktivní, nebo tak něco.
24. 7. 2013 11:00:36
https://webtrh.cz/diskuse/pomoc-s-navrhem-db/#reply926180
Pro odpověď se přihlašte.
Přihlásit