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

PHp i Bazy danych

VPS Starter Arubacloud
0 głosów
414 wizyt
pytanie zadane 7 sierpnia 2017 w SQL, bazy danych przez mi-20 Stary wyjadacz (13,190 p.)

Witam wszystkich.

Mam mały problem dotyczący pracy na bazach danych. Mimi iż przepracowałem dwa pierwsze odcinki dotyczące baz danych nadal tego nie ogarnąłem. Przejdź do sedna problemu.

Mamy bazę danych a w niej dwie tabele. Nazwijmy je "użytkownicy" i "dane". W pierwszej tabeli będą informacje dotyczące użytkowników, takie jak login, hasło, adres e-mail-dane podane przy rejestracji a w drugiej tabeli szczegółowe dane użytkowników takie jak imię i nazwisko, data urodzenia, adres zamieszkania, numer telefonu.

Teraz, jak połączyć obie tabele tak, aby system wiedział które dane z drugiej tabeli dotyczą którego użytkownika z tabeli pierwszej?

Z góry dziękuję za pomoc

 

4 odpowiedzi

+1 głos
odpowiedź 7 sierpnia 2017 przez CjanciK Bywalec (2,970 p.)
Cześć,

Poczytaj o relacjach między tabelami,  kluczach głównych i obcych, czy typach łączeń między tabelami.

A jeżeli nie rozumiesz o co chodzi w tych odcinkach to po prostu obejrzyj je tyle razy ile będziesz potrzebował do pełnego zrozumienia :)
+1 głos
odpowiedź 8 sierpnia 2017 przez Boshi VIP (100,240 p.)
Nie ma sensu robienia drugiej tabeli jeśli  użytkownik  ma tylko jeden adres  zamieszkania  itd. Takie coś można stosować przy zamówieniach gdzie użytkownik może mieć wiele różnych  adresów.
komentarz 8 sierpnia 2017 przez Ehlert Ekspert (214,060 p.)

No chyba, że rzeczywiście bawimy się w adresy. Synonimem słowa adres w bazach danych jest normalizacja laugh

0 głosów
odpowiedź 7 sierpnia 2017 przez Garrs Początkujący (320 p.)

Pomogą Ci w tym relacje. W tym przypadku relacja typu OneToOne. 
W tabeli dane tworzysz kolumny id, imię, nazwisko itd.
W tabeli uzytkownik odnosisz się do nich poprzez kolumnę dane_id. W tym przypadku jest to takie rozszerzenie tabeli.

    CONSTRAINT dane_id FOREIGN KEY (dane_id) REFERENCES uzytkowink (id)

 

0 głosów
odpowiedź 7 sierpnia 2017 przez mattat Użytkownik (910 p.)

Prosto :D 
W tabeli użytkowników potrzebujesz kolumnę id_użytkownika.
W tabeli dane również potrzebujesz mieć kolumnę id_użytkownika.

W momencie gdy chcesz chcesz dodać jakieś informacje do tabeli dane to powinieneś mieć już wcześniej stworzony rekord w tabeli użytkownicy i w tym rekordzie masz już ustaloną wartość id_użytkownika. Teraz nie pozostało nic innego jak w tabeli dane w kolumnie id_użytkownika wpisać to id użytkownika, którego dane mają dotyczyć.

Teraz chcąc znaleźć dane o użytkowniku z id 5 szukasz w tabeli dane rekordu z id_użytkownika = 5. 

Oczywiście aby to zadziałało id_użytkownika musi być unikatowe dla każdego z nich

komentarz 24 sierpnia 2017 przez mi-20 Stary wyjadacz (13,190 p.)

ok,

ale jak np zamiast id_uzytkownika=5 wstawić wartość z zmiennej sesyjnej?

czyli:

SELECT * FROM `uzytkownicy` WHERE id_user= 5

i to 5 jest automatycznie uzupełniane w zależności od tego z jakim użytkownikiem mamy doczynienia

Podobne pytania

0 głosów
1 odpowiedź 3,669 wizyt
0 głosów
1 odpowiedź 401 wizyt
0 głosów
0 odpowiedzi 377 wizyt
pytanie zadane 29 kwietnia 2021 w PHP przez domkub12 Początkujący (480 p.)

93,005 zapytań

141,971 odpowiedzi

321,251 komentarzy

62,343 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...