Autor Zpráva
Serg
Profil
Ahoj, mám sloupec (typu INT) který určuje pro koho je daný slot otevřený. Může být pro užvatele z konkrétní skupiny (tam je pak id té skupiny), nebo pro kohokoliv (pak je tam 0) nebo pro nikoho (NULL). Ale zjistil jsem, že by bylo asi správný v DB nastavit, že je to cizí klíč a na kterou tabulku.
Jenže to nepůjde kvůli tomu, že používám 2 speciální hodnoty. Kdyby byla jen jedna (NULL), tak by to ještě prošlo, ale takle na mě phpmyadmin řve, že k hodnotě 0 neexistuje záznam v protější tabulce.

Napadá mě v protější tabulce vytvořit záznam pro tu speciální hodnotu (ale to by pak dělalo bordel v administraci skupin), nebo přidat další sloupec, který by upřesnil, o který stav jde - to pak zase způsobí trochu redundanci dat, jelikož je tam teď tak 150 000 záznamů, každý den přibude cca 1000 dalších a většinou je to slot pro kohokoliv.

Jak by jste to řešili vy?
Kajman
Profil
Můžeš si udělat skupinu 0, kde budou automaticky všichni uživatelé. Buď příznakem ve skupině, že tam jsou všichni. Nebo triggerem při zakládáni uživatele ho dát do skupiny 0.

Nebo změnit logiku. Null bude bez omezení a bude nějaká skupina, kde nikdo není a tím se to zakáže.
Serg
Profil
Kajman:
Nebo změnit logiku. Null bude bez omezení a bude nějaká skupina, kde nikdo není a tím se to zakáže.

Jo, to zní to logicky, 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