Autor | Zpráva | ||
---|---|---|---|
Exson Profil * |
#1 · Zasláno: 27. 12. 2015, 00:11:19
Ahoj,
řeším takový problém, kdy mám v tabulce images dva sloupce id_admin a id_user. Ty jsou navázány na tabulky admin a user pomocí klíčů. Chci aby to fungovalo tak, že pokud bude id_admin = 0 (a id_user třeba 1), tak je jasné že to nahrál uživatel a obráceně. Problém, ale nastává že id 0 v tabulce admin neexistuje, proto se to nemůže uložit. Chci se tedy prosím zeptat jak můžu mít v tabulce rozlišeny kdo to nahrává (user/admin) a jaké id to nahrálo? Zároveň abych to měl provázáno s příslušnou tabulkou. Řešení, že do tabulek vložím záznam s id 0 se mi zdá jako prasárna a rád bych se zeptal na Váš názor a případně řešení jak to udělat jinak, lépe? Předem moc děkuji... |
||
Alphard Profil |
0 neprojde, to je hodnota porušující integritu. Můžete ale použít null , to by mělo být v pořádku.
„a případně řešení jak to udělat jinak, lépe?“ Obtížně, pokud se referencují 2 tabulky, musí tam být 2 sloupce. Spíš se nabízí otázka, jestli mají mít admini a uživatelé oddělené tabulky. Nešlo by je sloučit do jedné a adminům přidat jen příznak, že jsou admini? |
||
Exson Profil * |
#3 · Zasláno: 27. 12. 2015, 11:29:04
Perfektní null mě nenapadl. Moc děkuji.
Spojit uživatele a adminy by nebylo vhodné, protože u uživatelů mám mnohem více polí...jmeno, prijmeni, datum narozeni, atd, které u adminu nepotřebuji. Byly by tam prázdná pole. Proto jsem to rozdělil do dvou tabulek...Snad je to takto správně. |
||
juriad Profil |
Exson:
Budeš mít jednu tabulku users, která bude obsahovat všechy společné údaje a nějaký příznak oprávnění (admin = 1, ostatní = 0). Dále bude tato tabulka mít odkaz na personal_info, což je další tabulka, kterou budou mít vyplněnou jen uživatelé a admini budou mít místo odkazu NULL. Případně můžeš mít vazbu z druhé strany (personal_info bude vědět kterému uživateli patří), pak není třeba extra sloupec v tabulce users a nejsou komplikace s adminy. |
||
Časová prodleva: 9 let
|
0