Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem przy projektowaniu bazy dla magazynu czesci
Forum PHP.pl > Forum > Bazy danych > MySQL
florentino
Witam potrzebuje pomocy. Szukałem już na google ale nie znalazłem interesującej mnie odpowiedzi.
Obecnie jestem na etapie tworzenie bazy danych dla MySQL 5. przygotowałem rysunek podglądowy jakby miał wygladać model relacyjny.



Problem mój polega na tym, że chciałbym aby np. przy tworzeniu faktury za czesci była opcja z wyszczegolnieniem kilku produktów (numer_katalogowy) a nie jednym lub przy robieniu zamowienia ta sama sytuacja.
Zamówienie przeciez nie moze mieć (chyba) postaci powiedzmy:

id_zamowienia........id_towaru............numer_katalogowy.....ilosc
1................................2........................3c0698151...........
.1
1...............................12........................030115561...........
.2

Bo jak narazie jak chcem dodac do 1 zamowienia (id_zamowienia=1) kolejna pozycje to musze tworzyc nowe zamówienie o tym samym numerze id_zamowienia=1, lecz z innym numerem katalogowym.

Przy zamówieniu to pół biedy ale przeciez nie będę dla klienta robił osobnych faktur na każdą pozycje.
Mephistofeles
Podziel tą tabelę na 2 części - w jednej trzymaj tylko dane zamówienia, a w drugiej id zamówienia - id produktu - cena - ilość. Chcąc to robić tak jak na planie musiałbyś powielać sporo informacji winksmiley.jpg.
PS. Po co 2 x id dostawcy, w zamówieniu i w produkcie?
florentino
No dzięki spróbuje coś z tym powalczyc. Mam cala noc na to. Musze to zrobic bo mi inżynierka stanęła w miejscu sad.gif

Cytat
Podziel tą tabelę na 2 części - w jednej trzymaj tylko dane zamówienia, a w drugiej id zamówienia - id produktu - cena - ilość.
Bedę musiał je połączyć kluczami np. id_zamówienia, co spowoduje, że tu i tu musze go podać, a tym samym przy kazdym nowym produkcie.


A co do tego id_dos. Przy modelowaniu tego w Toad Data Modeler on sam kopiuje klucze obce. Na tym poziomie tego nie usunę, ale już w samym MySQL to wyrzucę.


Jeszcze jedno pytanie. Czy jak utworze tabele w MySQL ponadaję im PK to czy mogę tworzyć zapytania SQL bez utworzonych relacji ? Szczerze to nie wiem jak MySQL sie je nadaje. Robiac projekt w Toad Modeler tam je wykonuje. Robie zrzut bazy a pozniej importuje do MySQL.
griken
dodatkowo 2 sprawy:
- Nie przydałaby ci się informacja na poziomie zamówienia i faktury o pracowniku, tj. który pracownik przyjął zamówienie lub który wystawił fakturę?

- W jakim celu masz powiązanie między tabelami: pracownicy i users? Czy może umożliwiasz temu samemu pracownikowi posiadanie kilku kont z hasłami z różnych miast? Jan Kowalski logując się z Warszawy ma login 'jkowalski' i ten sam Jan Kowalski logujący się w Wrocławia ma login 'jkowal', tak?

Cytat(florentino @ 14.03.2009, 23:52:02 ) *
Jeszcze jedno pytanie. Czy jak utworze tabele w MySQL ponadaję im PK to czy mogę tworzyć zapytania SQL bez utworzonych relacji ? Szczerze to nie wiem jak MySQL sie je nadaje. Robiac projekt w Toad Modeler tam je wykonuje. Robie zrzut bazy a pozniej importuje do MySQL.


pewnie że możesz, wszystko zależy jak wygląda finalnie schemat twojej bazy w mysql, próbowałeś może http://www.fabforce.net/dbdesigner4/ dosyć ciekawy open-source do wizualnego projektowania baz i konwersji modelu do bazy danych
florentino
Nowy problem do rozwiązania.

Mam tabele "towary"

id_tow
numer_katalogowy
stan
cena


"szczegoly_zamowienia"

id_zamowienia
numer_katalogowy
ilosc

Powiedzmy, że:

towary:
1, 030115561, 2, 32,00
2, 074115561, 3, 33,00
3. 3C0698151, 2, 150,00


szczegoly_zamowienia:
1, 030115561, 1
1, 074115561, 1
2, 030115561, 1

Chcem teraz zrobić kwerende, która pokarze nam zawartosc tabeli "towary" z dodatkowym polem "rezerwacja".
potzrzebuje zrobic zapytanie, które w polu "rezerwacja" pokaze mi 2 (bo w zamowieniach sa 2szt)

mogłoby to wygladac tak:

Kwerenda

"towary" ......stan pole rezerwacja
1, 030115561, 2, ....2
2, 074115561, 3, ....1
3, 3C0698151, 2, ....0

Mma nadzieje ze jest czytelnie



Ok chyba problem z głowy to jest zapytanie. Moze komus sie przyda.

SELECT DISTINCTROW towary.nazwa_tow, towary.numer_katalogowy, towary.stan, towary.cena, towary.lokalizacja, Sum(szczegoly_zamowienia.ilosc) AS Rezerwacja
FROM towary INNER JOIN szczegoly_zamowienia ON towary.numer_katalogowy = szczegoly_zamowienia.numer_katalogowy
GROUP BY towary.nazwa_tow, towary.numer_katalogowy, towary.stan, towary.cena, towary.lokalizacja;



Jak zrobić by pokazywal rowniez towaru, które nie sa zamowione questionmark.gif
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.