Otóż mam taki problem, a raczej kilka...
Staram się stworzyć bazę na podstawie 2 tabel.
CREATE TABLE IF NOT EXISTS `commands` ( `id` int(11) NOT NULL AUTO_INCREMENT, `channel` varchar(30) NOT NULL, `command` varchar(30) NOT NULL, `text` varchar(255) NOT NULL, PRIMARY KEY (`id`) -- ?? ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `channel` varchar(30) NOT NULL, `premium` BOOLEAN NOT NULL DEFAULT 0 PRIMARY KEY (`id`) -- ?? ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
Niby wszystko ładnie pięknie, ale schody zaczynają się kiedy kombinuję z relacjami w tych 2 tabelach.
Chciał bym utworzyć relację między tymi tabelami po przez 'channel'.
W zasadzie, to nawet tych pól 'id' nie potrzebuje, chyba. Sam już nie wiem.
Próbowałem ustawiac primary/unique keye na id i na channel w róznych konfiguracjach. Zawsze napotykam jakieś problemy, błędy...
Albo nie da się ustawić relacji na channel, tylko na id. Albo nie da się dodawać danych do bazy, a relacje da się ustawić i na id i na channel. Albo jakies inne problemy, typu nie da się ustawić opcji primary key w którejś tabeli...
Jednym słowem...
Chcę relacji między tabelami poprzez channel.
commands.id, users.id i users.channel mają być unikalne.
Ktoś podrzuci jakieś konkretne, gotowe rozwiązanie na te 2 tabele? Bo już nie mam do tego siły na ten moment, no i nie chce mi się przerabiać całego sql'a od 0 żeby to ogarnąć w całości.
Wersja MySQL: 5.5.41