• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Stworzenie relacji w MySQL

0 głosów
1,919 wizyt
pytanie zadane 29 lipca 2016 w SQL, bazy danych przez GaCeL Dyskutant (7,500 p.)

Cześć, tworzę pewien projekt w Symfony, tylko jak na razie chaotycznie. I chciałbym zbudować poprawne relacje w bazie danych. Mam dwie tabele, Users i Transports, i chyba jak jeden użytkownik może mieć wiele transportów to będzie to relacja "One to Many", dobrze mówie?
I teraz pytanie jak stworzyć tę relację:
Czy klucz główny tabeli Users(id) ma być kluczem obcym tabeli Transports(userId) ?

http://i.imgur.com/x7DcXcw.png

1 odpowiedź

0 głosów
odpowiedź 29 lipca 2016 przez mbabane Szeryf (79,260 p.)
edycja 29 lipca 2016 przez mbabane

id_user nalezy umiescic w transports, bo gdybys zrobil odwrotnie to zalozenie ze jeden user moze miec wiele transports bylo by niewykonalne, bo tworzysz usera dajesz mu transport i klapa, bo gdyby ten sam user chcial wykonac kolejny transport musial by byc stworzony od nowa.

komentarz 29 lipca 2016 przez GaCeL Dyskutant (7,500 p.)

Nie rozumiem, jeżeli użytkownik dodaje transport to tworzy się kolejny "row" w tabeli Transports.

komentarz 29 lipca 2016 przez mbabane Szeryf (79,260 p.)
edycja 29 lipca 2016 przez mbabane

tak, dokladnie - nowy transport = nowy rekord w tabeli, i dlatego id_user musi byc w tabeli transports bo dzieki temu bedzie mozna do nowego transportu wstawic istniejacego uzytkownika (czy to takiego ktory ma juz jakis transport czy zupelnie innego)

Przeczytaj dokladnie moj post.

komentarz 29 lipca 2016 przez GaCeL Dyskutant (7,500 p.)

Ale przecież mam kolumnę userId w tabeli Transports

komentarz 29 lipca 2016 przez mbabane Szeryf (79,260 p.)
no to dobrze masz
komentarz 29 lipca 2016 przez GaCeL Dyskutant (7,500 p.)
No bo piszesz że id_user należy umieścić w tabeli Transports, a ja mam już taką kolumnę(userId), więc nie wiem o co chodzi.
komentarz 29 lipca 2016 przez mbabane Szeryf (79,260 p.)
no i teraz wystarczy tylko utworzyc polaczenie w samym sql i relacja ktora chcesz zrobic bedzie "dzialac"
komentarz 29 lipca 2016 przez GaCeL Dyskutant (7,500 p.)
A nie trzeba zrobić "FOREIGN KEY ... REFERNCED" ?
komentarz 29 lipca 2016 przez mbabane Szeryf (79,260 p.)
edycja 29 lipca 2016 przez mbabane
Tak tak o to mi chodzilo w ostatnim poscie

 

a tylko mysql domyslnie nie obsluguje relacji wiec tabele musza byc typu InnoDB - jak to ustawic poszukaj w necie ;)

Podobne pytania

0 głosów
2 odpowiedzi 248 wizyt
pytanie zadane 22 września 2020 w PHP przez nowyklemens Początkujący (430 p.)
0 głosów
1 odpowiedź 2,125 wizyt
pytanie zadane 18 listopada 2018 w SQL, bazy danych przez ariva6152 Użytkownik (570 p.)
0 głosów
1 odpowiedź 39,550 wizyt
pytanie zadane 10 sierpnia 2015 w SQL, bazy danych przez Else Stary wyjadacz (12,260 p.)

93,720 zapytań

142,647 odpowiedzi

323,267 komentarzy

63,270 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...