Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem MySQL, databáze pro uložení uživatelských práv jako v linuxu

Ahoj
Dělám MySQL databázi pro aplikaci. Mělo by to být podobně jako v linuxu (ve win je to asi stejně).
Uživatel je vždy ve své vlastní skupině (1:1, mají stejné jméno), ale může se přidat i do jiné "neuživatelské" skupiny (např. moderátoři), uživatel může být ve více skupinách.(M:M)
Každá skupina vlastní i "neuživatelská" mají uložena nějaká oprávnění pro různé akce v aplikaci (to asi nemá vliv na funkčnost)
V tabulce 'files' jsou uložené soubory, každý soubor by měl mít uživatele a skupinu a práva (vlastník/skupina/ostatní, rwx/rwx/rwx)

mám tedy tabulku 'user' (kromě id, jmena.. tam jsou i opravneni vlastni skupiny), v tabulce 'role' jsou jen "neuživatelské" skupiny, pak mám vazební tabulku 'membership' jsou v ni jen dva primární a zaroveň cizí klíče userID, roleID

když chci do tabulky 'files' dát cizí klíč userID, je to ok, chci přdat cizí klíč roleID a už to nejde
chyba: SQL Error (1005): Can't create table 'databaze.#sql-634_4' (errno: 150) Foreign key constraint is incorrectly formed

když chci přidat místo dvou sloupců user, role přidat jen jeden sloupec s cizím klíčem z tabulky 'membership', vyskakuje stejná chyba (a to i když referenci na oba klíče userID, roleID nebo jen na jeden)

Nevím co s tím nebo jak to změnit :(

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny