Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Powiązania rekordów tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
PaKo1407
Witam wszystkich
W php i sql jestem początkującym więc proszę o wyrozumiałość jeśli mój problem jest banalny

Piszę sobie mały skrypt do obsługi pewnych zleceń... Zlecenia otrzymuję w pliku xls z którego wczytuję do bazy najważniejsze dla mnie informacje ... każde zlecenie jest niepowtarzalnie numerowane. Klienci do których jest to zlecenie mają również nadane niepowtarzalne numery.

Sytuacja może być taka że dla jednego klienta są 2 ( a czasami i 3 ) osobne zlecenia w osobnych plikach (więc i rekordów w bazie jest 3) i chciałbym je jakoś powiązać ze sobą w celu ułatwienia pracy tj. wykonać opis równocześnie dla tych zleceń, przenieś sprzęt z magazynu do tych zleceń itp. Nie wiem czy stworzenie nowej tabeli ma jakiś sens.

Czekam na Wasze propozycje...


Pozdrawiam wink.gif

darko
Hej. Jeżeli w grę nie wchodzi rozbudowanie istniejących tabel, to możesz utworzyć dodatkową tabelę przechowującą samą relację Klient (1) - Zlecenia (*) czyli w relacji jeden do wielu, np.
  1. CREATE TABLE `test`.`test` (
  2. `id_test` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `id_klient` INTEGER UNSIGNED NOT NULL,
  4. `id_zamowienie` INTEGER UNSIGNED NOT NULL,
  5. PRIMARY KEY (`id_test`)
  6. )
  7. ENGINE = InnoDB;

Jednocześnie należałoby utworzyć klucze obce - dla id_klient oraz id_zamowienie, na tej postawie jesteś w stanie wyciągnąć wszystkie zamówienia czy zlecenia danego klienta.
// edit
Oczywiście klucze obce w tym przypadku nie są obowiązkowe, wystarczy, że jesteś w stanie odtworzyć relację pomiędzy klientem i zleceniami na podstawie samych danych (select * from test where id_klient = 6 - i już masz idki wszystkich zamówień czy zleceń przypisanych danemu klientowi).
PaKo1407
Cytat(darko @ 3.08.2012, 16:41:35 ) *
Jeżeli w grę nie wchodzi rozbudowanie istniejących tabel


na tabelach mogę działać jak mi tylko dusza zagra a twój pomysł jest ok do pewnego momentu tj. co kiedy dzisiaj otrzymuje jedno zlecenie do klienta coś tam wykonuję, przypisuję sprzęt z magazynu a za 2 tygodnie przyjdzie mi kolejne dwa zlecenia do tego klienta i nie są związane z tym dzisiejszym questionmark.gif

// EDIT1:

moja tabela wygląda tak ZLECENIA (id, nrzlecenia, nrklienta, nazwa, adres ......) a operacje wykonuję raczej na podstawie zlecenia a nie klienta ...
pedro84
Standardowa relacja 1:m - jeden do wielu - jeden klient może mieć wiele zamówień, ale zamówienie należy do jednego klienta.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.