Autor Zpráva
spartan13
Profil
Dobrý den,
řeším následující problém:

Potřebuji, aby uživatelé měli možnost si vytvořit určité skupiny, přičemž mohou být až v N skupinách.

Chci postupovat následovně:
Vytvořím pro každou skupinu jednu tabulku, kde budou vepsáni uživatelé. Kdybych ovšem databázi ponechal v tomto stavu a následně chtěl při vstupu uživatele zjistit, v jakých je skupinách musel bych projít úplně všechny tabulky skupin a hledat, jestli se v nich vyskytuje, což by asi nebylo zrovna ideální. Proto je logickým vyústěním, že bych přidal pro každého uživatele tabulku v jaké skupině se nachází.

S těmito dvěma vztahy uzivatel(skupiny) a skupina(uzivatele) by byl problém vyřešen. Ovšem pro N uživatelů by bylo také N tabulek, takže by v databázi bylo ohromné množství tabulek (nemám zkušenost, jestli je to běžné či nikoliv) a tyto vztahy by byli v podstatě rovnocené a duplicitní.

Ovšem jiné řešení mě nenapadá.

Jde mi o to, jestli je můj způsob "v pořádku" a běžně se podobné problémy řeší, nebo jestli máte jiné nápady, děkuji.
jenikkozak
Profil
spartan13:
Vytvoř 3 tabulky. V jedné budou uživatelé, ve druhé budou skupiny a ve třetí budou vazby mezi uživatelem a skupinou, tedy id uživatele a id skupiny.
spartan13
Profil
jenikkozak:
Děkuji za odpověď, vůbec mě to nenapadlo, přitom to přesně řeší můj problém!
Byl jsem poněkud "posedlý", aby řádky nebyli prakticky nikdy duplicitní.

Ještě jsem našel jeden problém, který řeším poněkud nevhodně a moc si s ním nevím rady.

Jde o dělení webu (data jsou načítána z databáze) a tak musí být data vhodně rozdělena, což se mi pravděpodobně vůbec nepodařilo.
web je klasicky rozdělen jak už to bývá domena/kat1/kat2/kat3
doteď jsem měl v databázi prakticky pro každé dělení vlastní tabulku, což je evidentně opět špatně, je to dost nepřehledné a špatně se s tím pracuje.

nejjednodušší řešení by bylo mít tabulky kategorie (kat1,kat2,kat3,obsah) v takovéto tabulce by se pak často opakovali jednotlivé kategorie a nebo by byli i prázdné.

Proto mě napadlo následovné řešení:

kategorie (úroveň,podřízená kategorie,jméno kategorie,obsah)

úroveň - INT (kat1=1;kat2=2 atd)

Tohle řešení je nejlepší co mě napadá, dalo by se použít? Nebo jsem opět daleko od ideálního řešení? Tento problém je určitě dávno vyřešen, jelikož se s ním potkalo už mnoho lidí přede mnou. Děkuji za každou radu.
jenikkozak
Profil
spartan13:
kategorie (úroveň,podřízená kategorie,jméno kategorie,obsah)
Jedná-li se o stromovou strukturu, do tabulky bych dal id, id rodiče (nadřazené kategorie), jméno a obsah kategorie. (Každá kategorie může mít pouze jediného rodiče, ale jen rodič může mít více kategorií.)
Ale možná bude mít někdo lepší nápad. :)
spartan13
Profil
jenikkozak:
Díky, to je dost podobný mému řešení, tak jsem konečně nebyl tak mimo, jako při prvním řešení.

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:

0