Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL]Projekt schematu BD
Forum PHP.pl > Forum > Przedszkole
BombaPHP
Witam

Chcę zrobić prosty projekt zakupu przedmiotów poprzez formularz form z skryptem odczytującym ale na początku chciałbym zaprojektować SCHEMAT - schemat nie jak zbudować rolleyes.gif BD tylko ogólny wygląd i rodzaje relacji
Powiedzcie co o tym sądzicie i pomóżcie w trafnym wyborze relacji (fajnie by było gdyby ktoś dobry pokazał mi jak oznaczyć na schemacie wymagane relacje)

Otóż założenie schematu mojej bazy danych wygląda następująco:

Tabela użytkownicy
-----------------------------------------------------------------------------------
uzytkownicy(klientID, ranga, imie, nazwisko, ulica, nrdomu, nrmieszkania, miejscowosc, kodpocztowy)
-----------------------------------------------------------------------------------

Tabela produktów
-----------------------------------------------------------------------------------
produkty(produktID, nazwa, cena)
-----------------------------------------------------------------------------------


Tabela zamówienia
-----------------------------------------------------------------------------------
zamowienia(zamowienieID, klientID, produktID, cena, data)
-----------------------------------------------------------------------------------

obecnie relacja jeden do jednego, klucz podstawowy klientID z tabeli użytkownicy oraz klucz obcy klientID z tabeli zamówienia.
Bardzo proszę o pomoc w jak najtrafniejszym skonstruowaniu tej prostej bazy danych. Jeśli zapomniałem jakieś pola chętnie zapoznam się z Twoim zdaniem. Przede wszystkim chodzi mi o ustalenie relacjii! ich typów i do jakich pól mają prowadzić
Pozdrawiam


Mod, bądź człowiek rolleyes.gif nie zamykaj

Będą plusy czarodziej.gif
Black-Berry
tabela zamowienie nie powinno zawierac ceny bo cene ma produkt. No i teraz co jesli ktos zamowi wiecej niz 1 produkt ? Myslales o tym?
dr_bonzo
Zajrzyj do OsCOmmerce czy magento i zobacz jakie maja tabelki od produktow/zamowien/klientow.
nexis
Ja proponowałbym rozbicie na następujące klasy (tabele):

- user (id, username, password)
- address (id, userid, firstname, lastname, street, postcode, town)
- product (id, label, price)
- order (id, addressid)
- product2order (orderid, productid, amount)

Całość oczywiście zależy od dalszych założeń sklepu, jak chociażby możliwość usunięcia produktu z zachowaniem informacji w zamówieniach lub też podanie adresu firmy jako odbiorcy. Ale chyba główną ideę poprawki pokazałem wyżej.
phpion
Cytat(Black-Berry @ 12.12.2008, 01:42:07 ) *
tabela zamowienie nie powinno zawierac ceny bo cene ma produkt. No i teraz co jesli ktos zamowi wiecej niz 1 produkt ? Myslales o tym?

A pomyślałeś o tym, że cena towaru może ulegać zmianie? Musisz zapisać cenę, po której dokonano zakupu.
Pilsener
A jak przyjął na stan ten sam towar po innej cenie? Proponuję metodę FIFO, LIFO lub średnią ważoną. Tabela produktów powinna zawierać też takie informacje jak:
- jednostka miary
- opis
- id kategoria/id podkategoria etc.
- kod kreskowy
- producent/marka
- dokładna nazwa produktu typu ABC ZT2345
- tagi/słowa kluczowa - wielu wyświetla np. "glany us steel black" a powinny to być słowa, które użytkownik wpisuje w szukajce, np. "czarne, wypasione glany", nazwa rodzajowa jest na tyle niszowa, że jak ktoś ją wpisze to szukajka i tak znajdzie w treści strony.
- komentarze

Natomiast co do ceny to bym polemizował - albo cena będzie ustalana sztywno, wtedy powinna znaleźć się w tabeli "produkty" - jeśli cena będzie liczona na zasadzie cena dostawy+marża to w grę wchodzi tabela "dostawy" a cena będzie liczona np. mętodą LIFO.

Co do tabeli zamówienia to oczywiście id, id_produktu, id_klienta,jednostka miary, ilość, wartość netto, vat, wartość brutto, upust, id_promocji, data, rodzaj płatności...

Sciągnij sobie jakiś skrypt sklepu internetowego smile.gif
dr_bonzo
Yh, cene produktu wpisujesz w pozycje zamowienia w momencie tworzenia zamowienia. KROPKA.

W sklepach wszystko mozna zrobic na kilka sposobow, zalezy czego potrzebujesz i ile chcesz sie narobic.

1. Zwykla cena netto + brutto i kopiowanie jej do zamowienia
2. Sledzenie zmian ceny (patrz komputronik i inne sklepy)
3. co tylko jeszcze chcesz

Wszystko zalezy od klieta, a jak to tylko projekt akademicki to pozostan przy 1.

Cytat
tabela zamowienie nie powinno zawierac ceny bo cene ma produkt.

Dodatkowo sam produkt moze zniknac - wiec wiecej info o produkcie musisz przepisac (nazwa, id, cena, vat ale bez opisow) - i znowu zalezy na ci te dane beda potrzebne - do wygenerowania faktury, czy cchcesz miec tam pelen opis produktu, ktory klient kupil itd.
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.