Zaloguj się, aby obserwować  
UthersonL

Programowanie - pytania, problemy, przykłady programów

1812 postów w tym temacie

Dnia 15.11.2013 o 12:32, Paweuu napisał:

Byłby ktoś tak dobry i wytłumaczył mi łopatologicznie jak z poniższego diagramu związków
encji mogę utworzyć schemat relacyjnej bazy danych?


To nie jest diagram związków encji, to jest... nie wiadomo co. :P

Oprócz tego co napisał Erton o statusie wycieczki, zmieniłbym połączenie sprzedaży z wycieczką na połączenie sprzedaży z ofertą - w końcu klient wykupuje konkretną ofertę. Sam fakt że oferta nie ma ceny wydaje się bez sensu, ale ja się na sprzedaży nie znam :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dzięki za odpowiedź. Nie bardzo wiedziałem jak zapisać w tym schemacie encja "Oferta". Zrobiłem ją trochę na siłę, byle by była, ale żeby też nie przeszkadzała :P Połączyłem agenta ze sprzedażą, dodałem w sprzedaży atrybut id(agenta). wywaliłem status. Czy mam połączyć jeszcze w jakiś sposób nr dokumentu (ze sprzedaży) z wycieczką lub agentem?

I jeszcze jedno pytanie. W jaki sposób na podstawie tego schematu mogę sporządzić polecenie do zadania "ile wycieczek ma dzisiaj w ofercie każdy z agentów?".

wcześniej to by było coś pewnie na zasadzie "select a from status;"? Nie ogarniam SQL w poziomie nawet podstawowym, ale takie polecenie wydawało mi się prawidłowe

20131115143034

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie wiedziałem jak poradzić sobie z ceną. Z treści wynika, że kwota która ma zapłacić klient zawiera się w nr dokumentu, nie chciałem tego dublować :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 15.11.2013 o 14:38, Paweuu napisał:

Nie wiedziałem jak poradzić sobie z ceną. Z treści wynika, że kwota która ma zapłacić
klient zawiera się w nr dokumentu, nie chciałem tego dublować :P


To jest cena jaką zapłacił klient, ale skąd on się wzięła? Agent ją wymyślił na poczekaniu? Można ją wrzucić w ofertę, w końcu oferta ma jakąś cene.

Co do diagramu - połączenia sprzedaży z agentem i sprzedaży z wycieczką jest bez sensu - lepiej je wywalić i dać relację sprzedaż - oferta.

Dnia 15.11.2013 o 14:38, Paweuu napisał:

wcześniej to by było coś pewnie na zasadzie "select a from status;"?

Kompletnie bez sensu. :P Bez podstaw SQL nie napisze takiego zapytania, musisz złączyć 3 table i pogrupować wyniki - to się kwalifikuje nawet jako "zaawansowany" SQL.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Masz na myśli wyrzucenie relacji sprzedaż-wycieczka, zostawienie relacji oferta-wycieczka i połączenie oferty bezpośrednio ze sprzedażą (oraz zlikwidowanie połączenia agent - sprzedaż)?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 15.11.2013 o 14:52, Paweuu napisał:

Masz na myśli wyrzucenie relacji sprzedaż-wycieczka, zostawienie relacji oferta-wycieczka
i połączenie oferty bezpośrednio ze sprzedażą (oraz zlikwidowanie połączenia agent -
sprzedaż)?


Tak. Zauważ że oferta jednoznacznie określa agenta i wycieczkę, więc zamieniasz dwie relację na jedną, która jest bardziej logiczna i lepiej odwzorowuje rzeczywistość - klient wykupuje konkretną ofertę.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Note to myself: relacje muszą być jak najbardziej logiczne :P

Znów poprawiłem schemat, mam nadzieje, że już jest ok (dodałem oferta ID, inaczej nie wiedziałem jak mógłbym połączyć ofertę ze sprzedażą)

Czy na podstawie tego schematu polecenie SQL do zadania np "średni koszt jednego miejsca na wycieczce w ciagu tego roku" będzie brzmiało tak:
select round(Kwota/Liczba_miejsc,2), Data from Sprzedaz where Data between 01.01.2012-31.12.12;? (czy sql zrozumie date zapisaną w ten sposb?)

20131115151221

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 15.11.2013 o 15:15, Paweuu napisał:

Czy na podstawie tego schematu polecenie SQL do zadania np "średni koszt jednego miejsca
na wycieczce w ciagu tego roku" będzie brzmiało tak:
select round(Kwota/Liczba_miejsc,2), Data from Sprzedaz where Data between 01.01.2012-31.12.12;?
(czy sql zrozumie date zapisaną w ten sposb?)


Masz 2 formaty daty, składnia between jest inna. Najlepiej zainstaluj sobie jakąś bazę, np mysql i phpmyadmina do tego (wszystko powinno być w XAMPie) i eksperymentuj. Samo założenie polecenia również jest błędne, bo musisz wziąć sumę kosztów wszystkich wycieczek i podzielić prze sumę wszystkich miejsc, a w tym momencie bierzesz bliżej niezidentyfikowany koszt i bliżej niezidentyfikowaną liczbę miejsc, więc de facto masz całkowicie losowy wynik.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 15.11.2013 o 14:52, Paweuu napisał:

Masz na myśli wyrzucenie relacji sprzedaż-wycieczka, zostawienie relacji oferta-wycieczka
i połączenie oferty bezpośrednio ze sprzedażą (oraz zlikwidowanie połączenia agent -
sprzedaż)?


Tak, to co pisze @rob006 nie jest takie głupie :)

Faktycznie można związać "Sprzedaż" z "Ofertą". To co namalowałeś na tym ostatnim obrazku (czyli chyba moje "zalecenia") też będzie działało, ale chyba rzeczywiście nadmierne komplikowanie diagramu.

Oczywiście można by się spierać, czy na przykład agent nie mógłby mieć 2 ofert na tę samą wycieczkę. Albo czy w ramach jednej sprzedaży nie można wykupić kilku ofert. Ale wtedy ID oferty, stanowiące wraz z ID Agenta i ID wycieczki klucz główny tabeli "Oferta", rozwiązałoby sprawę. Jeśli agent na każdą wycieczkę przedstawia tylko jedną ofertę, to ID Oferty jest niepotrzebne.

Ot, fajnie, że ja też sobie coś powtórzyłem :) Na egzaminie z BD2 przed tego typu hocki-klocki wysiekło 3/4 semestru - ja zdałem ledwo co, mimo że popełniłem mrożący krew w żyłach błąd - nie dałem indeksu na klucz obcy w związku rekurencyjnym o_0


Oczywiście formatowanie kreseczek się, delikatnie mówiąc, trzasło. Olejmy to :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

okej - będę musiał to zrobić bo inaczej sobie tego nie przyswoję ;) pewnie dla kogoś, kto zna SQL odpowiadania na pytania tak prostackie jak moje musi być ciężkie :) za co podwójne dzięki za pomoc

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ja własnie powtarzam (ucze się :P) przed poprawką z BD. Ponad połowa kierunku się wysypała na terminach wrześniowych i teraz mamy ostatnią deskę ratunku. Z teorią nie mam problemu - gorzej z praktyka :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Mam problem z kompilatorem NetBeans. Przy próbie utworzenia projektu Java Application program wyrzuca mi błąd z załączonego screena. Jest to poprzedzone krótkim procesem "Activating Java SE".

Instalowałem JDK z pliku jdk-7u45-windows-x64.exe (czyli pod mój 64-bitowy system, jakby nie było), nie przyniosło to jednak efektów.

20131116124429

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 16.11.2013 o 12:44, Kardithron napisał:

Instalowałem JDK z pliku jdk-7u45-windows-x64.exe (czyli pod mój 64-bitowy system,
jakby nie było), nie przyniosło to jednak efektów.


Prawdopodobnie musisz podać ścieżkę do JDK w konfigu NetBeansa. Jak to zrobić, to już szukaj w FAQ podlinkowanym w komunikacie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 16.11.2013 o 13:30, rob006 napisał:

Prawdopodobnie musisz podać ścieżkę do JDK w konfigu NetBeansa. Jak to zrobić, to już
szukaj w FAQ podlinkowanym w komunikacie.

Jest napisane, że mam użyć komendy --jdkhome. Gdzie należy jej użyć?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 16.11.2013 o 17:56, rob006 napisał:

Jest jeden problem - system nie rozpoznaje pliku CONF. Mogę użyć do edycji notatnika, ale plik wynikowy mogę zapisać wówczas tylko w postaci pliku tekstowego (którego NetBeans oczywiście już nie rozpoznaje).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 17.11.2013 o 12:48, Kardithron napisał:

Jest jeden problem - system nie rozpoznaje pliku CONF. Mogę użyć do edycji notatnika,
ale plik wynikowy mogę zapisać wówczas tylko w postaci pliku tekstowego (którego NetBeans
oczywiście już nie rozpoznaje).


Nie wierzę. Musi być opcja napisania pliku, albo chociaż zapisania do dowolnego formatu (wtedy sam dodajesz rozszerzenie .conf). Ewentualnie skorzystaj z jakiegoś cywilizowanego edytora - to jest plik tekstowy, tylko ze specyficznym rozszerzeniem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 17.11.2013 o 12:48, Kardithron napisał:

Jest jeden problem - system nie rozpoznaje pliku CONF. Mogę użyć do edycji notatnika,
ale plik wynikowy mogę zapisać wówczas tylko w postaci pliku tekstowego (którego NetBeans
oczywiście już nie rozpoznaje).


W notatniku (windowsowym) musisz wybrać opcję wszystkie pliki jako typ pliku i potem w polu nazwa pliku wpisujesz twojanazwa.conf

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Utwórz konto lub zaloguj się, aby skomentować

Musisz być użytkownikiem, aby dodać komentarz

Utwórz konto

Zarejestruj nowe konto na forum. To jest łatwe!


Zarejestruj nowe konto

Zaloguj się

Masz już konto? Zaloguj się.


Zaloguj się
Zaloguj się, aby obserwować