Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z PRIMARY/UNIQUE KEY oraz relacjami
n0zz
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 1.03.2015

Ostrzeżenie: (0%)
-----


Hej!
Otóż mam taki problem, a raczej kilka...
Staram się stworzyć bazę na podstawie 2 tabel.

  1. CREATE TABLE IF NOT EXISTS `commands` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `channel` varchar(30) NOT NULL,
  4. `command` varchar(30) NOT NULL,
  5. `text` varchar(255) NOT NULL,
  6. PRIMARY KEY (`id`) -- ??
  7. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
  8.  
  9. CREATE TABLE IF NOT EXISTS `users` (
  10. `id` int(11) NOT NULL AUTO_INCREMENT,
  11. `channel` varchar(30) NOT NULL,
  12. `premium` BOOLEAN NOT NULL DEFAULT 0
  13. PRIMARY KEY (`id`) -- ??
  14. ) 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

Ten post edytował n0zz 1.03.2015, 05:33:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
n0zz
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 1.03.2015

Ostrzeżenie: (0%)
-----


Jak by to wyjaśnić...
Channel w tabeli users jest nazwą użytkownika. W sumie mogło by tam nie być w ogóle id chyba, ale bez id i ustawionego primary key na id w phpmyadminie jakieś tam komunikaty wyskakiwały.
Channel w tabeli commands to kanał czatu na którym działają te określone komendy które są w bazie właśnie przypisane do tego kanału(który jest jednocześnie użytkownikiem).

Także, users.channel jest jednocześnie użytkownikiem, który może kupić premium lub nie, oraz nazwą kanału(commands.channel) na którym mają być używane komendy.
W zasadzie, jak tak sobie myślę to nawet nie jestem pewny po co są te relacje w ogóle. Także liczę na pomoc w stworzeniu tej prostej bazy. Jakieś wytłumaczenie co, jak i po co, albo link, do czegoś, co wyjaśni mi wszystko w prosty sposób. Ale żebym nie musiał przerabiać przykładowo książki 400 stron na temat sql'a... Bo tym może się zajmę za jakiś czas, teraz chcę doprowadzić projekt do sensownego etapu i brakuje mi sumie tylko tej bazy, w miarę zorganizowanej.

Ten post edytował n0zz 1.03.2015, 14:18:30
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 15:17