Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Czy skonstruwane tabele są odpowiednie do takiego rozwiązania
majweb
post 19.12.2014, 11:31:33
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 15.12.2014

Ostrzeżenie: (0%)
-----


http://wrzucaj.net/image/ujE

Czy tak skonstruowane tabele zwrócą następujący wynik:
-pobierze z bazy i wyświetli listę adresów oraz kont wybranego klienta.

Jak to zapytanie miałoby wyglądaćquestionmark.gif

Ten post edytował majweb 19.12.2014, 11:34:08
Go to the top of the page
+Quote Post
Forti
post 19.12.2014, 11:34:51
Post #2





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

Ostrzeżenie: (0%)
-----


Wydaje mi się, że jedno zapytanie może nie wystarczyć, lub będzie bardzo duże wink.gif

w tabeli klient trzymaj id_adres i id_konto ( to już tam masz).

Wówczas podwójne left join załatwi sprawę.

Może kto inny poda lepsze rozwiązanie.


edit:

mozna zrobic manyToMany (czwartą tabele z id_klient id_adres id_konto).

Ten post edytował Forti 19.12.2014, 11:36:02


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
majweb
post 19.12.2014, 11:38:54
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 15.12.2014

Ostrzeżenie: (0%)
-----


Siedzę przy tym już dłuższą chwilę i pozbywam się resztek włosów i nie potrafię tego ogarnąć wink.gif
Go to the top of the page
+Quote Post
Turson
post 19.12.2014, 11:42:07
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


SELECT * FROM konto WHERE id_klient = 1
Serio?
Go to the top of the page
+Quote Post
majweb
post 19.12.2014, 12:30:52
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 15.12.2014

Ostrzeżenie: (0%)
-----


Super pomogłeś mi..
Potrzebuje połączyć tak tabele żeby wyświetlać wszystkie rekordy w jednym zapytaniu a przykład, który podałeś no cóż..
Go to the top of the page
+Quote Post
aniolekx
post 19.12.2014, 13:12:41
Post #6





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

Ostrzeżenie: (0%)
-----


wyrzuć z tabeli klient kolumnę id_konto

  1. SELECT *
  2. FROM klient
  3. LEFT JOIN konto USING(id_klient)
  4. LEFT JOIN adres USING(id_klient)
  5. WHERE id_klient = 1


niestety będą duplikaty (kombinacja kont i adresów), bo obydwie tabele są w relacji jeden do wielu.
Go to the top of the page
+Quote Post
majweb
post 19.12.2014, 13:29:40
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 15.12.2014

Ostrzeżenie: (0%)
-----


Masz jakieś lepsze rozwiązanie dotyczące takiej sytuacji :
Każdy klient banku może posiadać wiele kont bankowych, które identyfikowane są za pomocą unikalnego numeru. Do informacji o koncie należą również saldo i nazwa rachunku nadana przez klienta. Klienci podają imię, nazwisko i numer PESEL. Każdy klient może występować w bazie tylko jeden raz, może za to zdefiniować kilka adresów kontaktowych (ulica, numer, kod pocztowy, miasto).

Chodzi żeby rozwiązać problem z duplikatami
Go to the top of the page
+Quote Post
aniolekx
post 19.12.2014, 13:49:12
Post #8





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

Ostrzeżenie: (0%)
-----


a skąd wiesz ze duplikaty są problemem? z treści zadania wynika zenie ma powiązania pomiędzy kontem a adresem
Go to the top of the page
+Quote Post
majweb
post 19.12.2014, 14:24:55
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 15.12.2014

Ostrzeżenie: (0%)
-----


Czyli te tabele i relacje są poprawne? To w takim razie jak te zapytanie miałoby wyglądać?
Go to the top of the page
+Quote Post
pmir13
post 19.12.2014, 17:07:49
Post #10





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

Ostrzeżenie: (0%)
-----


Jeżeli adresy nie mają powiązania z kontami, to nie ma absolutnie żadnego racjonalnego powodu, by chcieć mieć obie listy w jednym wyniku. Chyba tylko jakiś nawiedzony nauczyciel akademicki bez faktycznego zawodowego doświadczenia może czegoś takiego zażądać, do tego tylko po to, by udowodnić że można, ale nawet do tego celu można wymyślić dużo bardziej pasujące dane. W tej chwili wygląda to tak, jakby ktoś chciał dostać listę miast w Peru i gatunków żab w Argentynie, ale w jednym zapytaniu, bo to ten sam kontynent.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 13:19