Autor Zpráva
Jákob
Profil *
Dobrý den,

nemohu nějak přijít na nejefektivnější způsob jak řešit tabulkami následující:

Tabulka admins skýtá uživatelská jména adminů a k ní chci přidat další tabulku, kde budou definována jejich práva k jednotlivým sekcím v menu. Problém je v tom že je položek v menu proměnlivé množství, jak tedy definovat práva pro každou sekci? Nepřipadá mi nějak "čisté" když udělám buňku práva a v ní budou s čárkami (1,6,8) vyjmenovány sekce kde má právo editace. Napadá někoho lepší způsob?

Moc děkuji za rady!
tiso
Profil
Jákob: najprv podrobnejšie vysvetli čo znamená:
k jednotlivým sekcím v menu
Jákob
Profil *
Znamená to že máme 8 položek menu:

První sekce
Druhá sekce
Třetí sekce
...

Já chci nyní adminovi který má mít práva pro všechny položky přidat tato práva, ale nezdá se mi čisté abych do sloupce permissions napsal 1,2,3,4,5,6,7,8

Jak to udělat jinak?
drasha
Profil
Třeba tabulku Moderators a v ní sloupce Admin, Section..?
tiso
Profil
Jákob: na vzťah n:m sa používa prepojovacia tabuľka, v nejd budeš mať stĺpce user_id, polozka_id a prípadne right pre úroveň práv (zápis, čítanie, ...)
Jákob
Profil *
tiso
polozka_id je ale ten můj problém, on má práva třeba ke třem, takže by byl výsledek že tam bude více záznamů s čárkou nebo jiným oddělovačem. :)

drasha
Admin, Section.. - hezké, takže sloupec pro každou sekci menu, a co když se zmení počet těchto položek?
drasha
Profil
Položky máš snad uložené v databázi ne?:) Pak jen update..
tiso
Profil
Jákob: prečítaj si niečo o teórii návrhu databáz, pochopíš že prepojovacia tabuľka obsahuje viacero riadkov:
user_id polozka_id
  1      1 --user 1 ma prava pre sekcie 1,3, 5
  1      3
  1      5
  2      2 --user 2 len pre sekciu 2
Jákob
Profil *
Díky,

že by měl jeden user více řádků a na každém řádku zapsaná práva pro jednu sekci mě také napadlo, ale nějak se mi to taky nezdálo, tak jsem myslel jestli není ještě o něco elegantnější řešení. Zřejmě se to ale řeší takto. :) Díky!

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