[MySQL]System ofertujący - projekt bazy danych, Szukam pomocy w zakresie budowy bazy danych |
[MySQL]System ofertujący - projekt bazy danych, Szukam pomocy w zakresie budowy bazy danych |
24.10.2020, 17:41:37
Post
#1
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 24.10.2020 Ostrzeżenie: (0%) |
Witam! Z PHP miałem styczność kilka lat temu, no i niestety świat poszedł do przodu, wszystko się pozmieniało, dlatego pragnę zwrócić się z prośbą o pomoc w zakresie projektu bazy danych. Dla przykładu posłużymy się systemem ofertowym dla sprzedaży jabłek. Choć to oczywiście taka anonimizacja potrzeb.
Formularz "telefoniczny" przeprowadzany przez konsultanta sprzedaży jabłek zawiera następująco: Klient - (Imię, Nazwisko, telefon kontaktowy i adres email) Produkt do wyboru (jeden z 3 lub 4) (np. Jabłka czerwone, jabłka zielone, jabłka z brzydką skórką) Każdy produkt posiada swoją podklasę: np. Jabłka czerwone z ogonkiem i listkiem, jabłka czerwone z ogonkiem ale bez listka, jabłka czerwone z listkiem ale bez ogonka. Oczywiście w danej podklasie, jabłka z ogonkiem i listkiem kosztują np:100 zł/kg, ale jabłka z ogonkiem bez listka 150zł/kg a bez listka i bez ogonka 70 zł/kg. Analogicznie dzieje się w przypadku jabłek zielonych i jabłek z brzydką skórką. Klient może zażądać oferty wyłącznie na jeden produkt (np. tylko jabłka czerwone), ale wśród czerwonych może mieszać. (np. 10 kg jabłek z listkiem i ogonkiem, 5 kg bez listka ale z ogonkiem, i 2 kg bez listka i ogonka) Dodatkowo, klient może chcieć aby doliczyć mu do oferty usługi komplementarne tj. mycie jabłek, odważanie, pakowanie, oklejanie specjalną naklejką i woskowanie. Transport lub brak transportu. Klient decuduje, jeśli decyduje się na transport podaje odległość do oferty i kalkulacji. Co ma się dziać dalej. Całość zapytań ma wylądować w bazie. Dodatkowo, ma przeliczyć i przechować w bazie kalkulację, dalej przygotować pdf i umożliwić wysyłkę szkicu oferty do klienta za pomocą danych zebranych podczas składanego zapytania. I tak sobie wykombinowałem, że: Baza system_ofertowy zawiera tabele: Klienci (id, imię, nazwisko, telefon, mail) Produkty (id, nazwa, podklasa, cena za kilogram) Usługi (id, nazwa, cena_usługi) Oferta (id, id, klienta, ilosc produktu ogólem, podklasaA_ilość, podklasaB_ilość, podklasaC_ilość, cenaA, cenaB, cenaC, Wartość CenyA, Wartość CenyB, Wartość CenyC, .... wartość usługiA, usługiB, usługiC, ilość usługA, ilość usługB. Oraz wartość całkowitą oferty.) Nie wiem czy nie przekombinowałem.... dlatego bardzo proszę o pomoc. Teraz pytanie, czy jest sens Tworzyć tabelę klienci, skoro wymusi to przed dodaniem klienta sprawdzenie czy nie istnieje w bazie. Jak już z klientów rezygnujemy, to może lepiej opisać wszystkie produkty i stworzyć jedną tabelę. Logika jednak podpowiada by to rozdrobnić. Jak Wy byście to widzieli? I taka refleksja na sam koniec że niby to tylko sprzedaż jabłek, a jak można skomplikować sobie życie |
|
|
24.10.2020, 20:37:41
Post
#2
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 52 Dołączył: 18.02.2008 Ostrzeżenie: (0%) |
Trzeba w tej bazie rozbić to pole podklasa w tabeli oferty na osobne tabele: kategoria_produktu i podkategoria (to standard w sprzedaży) chodzi o to, żeby za każdym zamówieniem nie pisać w ofercie czerwone z ogonkiem, zielone bez ogonka itd. Prowadzi to do nadmiarowości bazy danych. Trzeba dołożyć 3 tabele: 1 -kategoria, 2 - podkategoria a w trzeciej zrobić relację jeden do wielu tych dwóch tabel i użyć ich do wyboru kategorii i podkategorii. W razie gdyby coś doszło można spokojnie dodać i ogarnąć.
Tabela klientów: trzeba się zastanowić jak zrealizować klientów, którzy będą zrobić zakupy co jakiś czas. Trzeba sprawdzić czy klient istnieje, dałbym pole nip albo regon dla firm i pesel lub tel kom dla fizycznego, żeby nie było redundancji, które sprawdza operator w momencie połączenia tel/emaila. Z oferty wyrzuciłbym podklasy A, B C itd i wstawił odpowiednie id z kategorii i podkategorii według ich relacji. Wszystkie ceny, vat-y do osobnej tabeli w relacji z kategoriami i podkategoriami, łatwiej nad tym zapanować. Zakupy hurtowe i rabaty: dołożyć tabele dla stałych klientów i nadać pole rabatowe - % od ceny. Chyba, że wszyscy mają jednakowe ceny. pdf-y i wysyłka oferty to już czysty php. |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 20:37 |