![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 1 Dołączył: 4.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
spróbuję wyjaśnić mój problem...Mam tabelę z produktami, z zamówieniami i łącząca te 2 tabele (ID, ID_ZAM, ID_PROD, ilosc). Mam zapytanie, gdzie podając numer zamówienia generowana jest lista produktów z ilościami na to zamówienie. Proste. Ale niektóre zamówienia są wyjątkowe (wyjatek = TRUE) i chciałbym tym samym zapytaniem dla nich generować całkiem inną listę produktów. To samo zamówienie, a całkiem inna lista produktów. Wydaje mi się że sa 2 możliwości: Albo w tabeli łączonej dodać nową kolumnę "ID_produkt_wyjatek" i w zapytaniu przy warunku połączenia tabel "produkt" i "laczona" dać
Lub stworzyć drugą tabele łączoną....ale pisząc to stwierdzam że to chyba gorszy pomysł. Czy przy tym pierwszym pomyśle wszystko będzie ok i czy warunkach łączenia tabel można stosować takie funkcje jak case when lub coalesce? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
2 tabela, bo to zupełnie innym model danych jest
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Z jaką tabelą jest powiązane id_produkt_wyjatek?
-------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 1 Dołączył: 4.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
ID_produkt_wyjatek = produkt,ID_produkt
Chodzi o to żeby zależnie od tego czy pole bolean (wyjatek) w tabeli zamówienia ma wartość 1 lub 0 lista produktów generowała się w tym samym zapytaniu czasami przez połączenie laczona.ID_produkt_wyjatek = produkt.ID_produkt (wyjatek = 1), a czasami przez połączenie laczona.ID_PROD = produkt,ID_produkt No chyba że lepiej zrobić osobną tabelę łączoną, tylko jak wtedy w zapytaniu kazać relacji wybierać różne tabele w zależności od warunku? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A czym się różni sytuacja kiedy id_produkt_wyjatek=3 oraz id_produkt=3, przecież i tak kierują do tego samego produktu?
-------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 1 Dołączył: 4.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
standardowo chcę mieć listę produktów z połączenia laczona.ID_PROD = produkt,ID_produkt
Ale w wyjątkowych sytuacjach chciałbym dopisywać w pustą do tej chwili kolumnę "laczona.ID_produkt_wyjatek" numery ID innych wyrobów niż w kolumnie ID_PROD i generować inną listę produktów gdy zamowienia.wyjatek = 1 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Skoro wyjątkowe produkty determinuje pole wyjatek w zamówieniu, to po co dodatkowe pole id_produkt_wyjatek? Wystarczy jedno pole id_produkt.
Ewentualnie gdyby w jednym zamówieniu pojawiały się zwykłe i wyjątkowe produkty, to takie pole można przenieść z tabeli zamówień do tabeli produktów. -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Popieram trueblue, to będzie najlepsze rozwiązanie.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 08:15 |