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

Relację między tabelami MySql

VPS Starter Arubacloud
0 głosów
1,522 wizyt
pytanie zadane 18 lipca 2018 w SQL, bazy danych przez mi-20 Stary wyjadacz (13,190 p.)
Witam,

mógłby mi ktoś dokładnie wytłumaczyć jak działają relację między tabelami MySql.

Mianowicie, nie rozumiem jednej podstawowej rzeczy. Powiedzmy że mamy dwie tabele. Tabela użytkowników i tabela postów. Każdy użytkownik może dodać artykuł. I teraz z tego co zrozumiałem z jakiegoś kursu należy zrobić dodatkową tabelę w której będziemy trzymać id użytkownika i id postu. Ale czy nie można w tabeli postów zrobić kolumnę id_user i chyba wyjdzie na to samo? I teraz nwm czy ja to dobrze rozumiem, czy jednak źle to rozumiem?

Jak ktoś mi to wytłumaczy będę wdzięczny :D

3 odpowiedzi

+3 głosów
odpowiedź 18 lipca 2018 przez Hunter94 Mądrala (6,290 p.)
edycja 18 lipca 2018 przez Hunter94
W twoim przypadku wydaję mi się że możesz tak zrobić z dwóch powodów:
* Użytkownik jest ściśle związany z danym postem

* Jeden post może napisać jeden użytkownik.

Więc wychodzi na to że obejdziesz się bez tabeli z relacją typu "wielu do wielu"
Ale jakbyś miał tabelę lokatorzy i tabele mieszkania to musiałbyś zrobić:

mieszkanie 1, 25mkw, Andrzej ;

mieszkanie 1, 25mkw, Kasia ;

Tu by już zachodziła redundancja więc trzeba byłoby wprowadzić tabelę która umożliwiłaby powiązanie wielu użytkowników bez kopiowania całego wiersza raz jeszcze.

Oczywiście takie tabele pośrednie nie są złym wyjściem mogą się potem przydać.

Poza tym takie budowanie baz jest często zgodne ze sztuką.   

https://pl.wikipedia.org/wiki/Postać_normalna_(bazy_danych)
0 głosów
odpowiedź 18 lipca 2018 przez Bronek Początkujący (480 p.)
Witam,

Dodatkową tabelę łącznikową, która ma zawierać kolumny: id użytkownika oraz id postu możesz użyć w przypadku, gdy jeden użytkownik może dodać wiele postów oraz jeden post może należeć do wielu użytkowników (Relacja N do M).

Możesz dodać kolumnę id użytkownika do tabeli postów w przypadku, gdy jeden użytkownik może dodać wiele postów oraz jeden post może należeć tylko jednego użytkownika (Relacja 1 do M).
–1 głos
odpowiedź 20 lipca 2018 przez Catalonya1992 Mądrala (5,440 p.)
Możliwości masz kilka. Podstawą do zrozumienia tego czy stosować dodatkową tabelę jest rodzaj powiązania między tabelą użytkownicy a posty. Istnieje kilka rodzajów łączeń: 1:1, 1:N, N:1, oraz N:N, gdzie 1 oznacza jeden a N oznacza wiele. Dodatkową tabelę stosuje się przy połączeniach N:N, czyli wiele do wielu. W Twoim przypadku jeden użytkownik może napisać wiele postów, ale jeden post może być napisany tylko i wyłącznie przez jednego użytkownika. W związku z tym Twoja propozycja rozwiązania (dodatkowa kolumna) jest jak najbardziej prawidłowa, bo występuje relacja 1:N.
Tutaj znajdziesz konkretny przykład implementacji tego rozwiązania:
https://www.youtube.com/watch?v=qlEBJE8UN-Q&list=PL8g9gILZp1OJpjlu7AuR9Ysu4z5Rff_AQ&index=7
Oczywiście, jeśli stworzysz dodatkową tabelę to nic się nie stanie. Najważniejsze przy tworzeniu relacji jest unikanie redundancji(nadmiarowości danych) oraz równoczesne utrzymanie integralności danych (dane są w prawidłowym stanie). Reszta jest mniej istotna w początkowym etapie nauki.

Podobne pytania

0 głosów
0 odpowiedzi 190 wizyt
–3 głosów
2 odpowiedzi 525 wizyt
pytanie zadane 2 września 2015 w SQL, bazy danych przez DawidxD Użytkownik (810 p.)
+1 głos
2 odpowiedzi 291 wizyt
pytanie zadane 8 lipca 2021 w SQL, bazy danych przez Kenzy Obywatel (1,160 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...