Relacja między 2 tabelami w phpmyadmin

0

Witam
Robię baze danych SQL w phpmyadmin składającą się z 2 tabel (towary [id, kod-PRIMARY, produkt] i inwentaryzacja[id-PRIMARY, kod, produkt, ilość]).
Chodzi o powiązanie tych dwóch tabel ponieważ do bazy dojdzie program w którym poprzez czytnik będzie wprowadzany kod kreskowy (cyfry) a następnie po tym kodzie produkt ma być wyszukany w pierwszej tabeli i wpisany do drugiej (z opcją dopisania wartości w kolumnie "ilość") . Aktualnie ustaliłem że kolumna "kod" z tabeli "towary" jest kluczem obcym dla "kod" w tabeli inwentaryzacja na podstawie takiej komendy:
ALTER TABLE towary
ADD FOREIGN KEY (Kod)
REFERENCES inwentaryzacja(Kod)

I moje pytanie jest takie czy to wystarczy do powiązania tych tabel ze sobą?

0
  1. po co Ci pole ID skoro PK masz na kod?
  2. jak już masz ID, zapewne jakiś autoinc to go użyj.
0

co ma do rzeczy czy ktoś potrzebuje kod do tego co masz w tabeli? Nie potrafisz na podstawie kodu znaleźć id czy co?

0

A co ma jedno do drugiego? W czym przeszkadza pole ID w sprawie powiązania ze sobą dwóch tabel?
Niepotrzebne jest mi w drugiej tabeli wiedzieć że mam 20 sztuk towaru o ID 20 tylko że mam 20 sztuk towaru o konkretnym kodzie.

A tak poza wszystkim to trochę wyrozumiałości by się przydało, bo nie jestem programistą tylko robię jednorazowy projekt na studia (niezwiązany z moim kierunkiem)

0

przyszedłeś na forum i pytasz to odpowiadam. Po co pytasz jak każda odpowiedź niezwiązana z twoim światopoglądem jest dla ciebie obrazą? Tak jak próbujesz zrobić jest źle. Może by takie coś przeszło na produkcji w uzasadnionych przypadkach ale na studiach nie powinno w żadnym razie przejść. A skoro i tak zrobisz po swojemu to "działać" będzie nawet bez FOREIGN KEY i też będzie "dobrze"

0

No to oświeć mnie jak powinienem to napisać żeby było poprawnie według Ciebie. Ja w SQL pracuje od wczoraj wiec chyba nic dziwnego że popełniam błędy.. Uznałem że taka opcja będzie dla mnie najwygodniejsza, ale możesz mnie przekonać jakimś konkretem.

0

Sam napisałeś, że to projekt na studia więc Ja w SQL pracuje od wczoraj oznacza, że na zajęciach nie byłeś więc skąd miałbyś mieć jakieś podstawy... Ale twój cyrk i twoje małpy, nie mnie cię osądzać. Jeżeli jednak przyszedłeś z pytaniem to odpowiadam. Abyś wiedział dlaczego tak a nie inaczej musiał byś wiedzieć cokolwiek o normalizacji bazy danych i postaciach normalnych. To, że pola kod nie powinno się dublować tak jak ty to chcesz zrobić wynika wprost z tych dwóch powyższych - będziesz miał chęć to poczytasz nie to nie - jak już pisałem nie mój cyrk.

Powinno być tak:

  Towar  
* id autoinc
  nazwa varchar
  ean varchar
  ... ...
  Inwentaryzacja  
* id autoinc
# towar_id integer
  ilosc numeric

w tabeli Inwentaryzacja pole towar_id jest FK do tabeli Towar pola id.

Taki schemat pozwala zapisać wszystkie dane, które chciałeś bez niepotrzebnej nadmiarowości

1 użytkowników online, w tym zalogowanych: 0, gości: 1