Diagram ER

0

Wykonuję swój pierwszy projekt relacyjnych baz danych w MySQL, i mam pytanie o wasze uwagi i komentarze do załączonego diagramu. Bazy docelowo mają być podpięte pod prosty program pozwalajacy zrobić wycenę produktu na podstawie okreslonych parametrów.
Bazy mają dotyczyć póki co jednego produktu, który posiada jedną nazwę, będzie miał kilka modeli gdzie każdy inny niż standardowy model będzie miał określoną dopłatę. Ta sama sytuacja będzie z kolorystyką osprzętu i materiałów jakie zostaną wybrane oraz ze sposobem montażu.

title

0

Na podstawie Twojego opisu można zaprojektować bazę jak poniżej. Cena produktu to suma cen poszczególnych elementów.
Brakuje informacji jak wpływa rozmiar (szczerość i wysokość) na cenę. Stąd nie jest to ujęte w diagramie.

rolety.png

0

Dzięki za odpowiedż w sprawie diagramu !
Odnośnie Twojej uwagi o cenie to jest ona ustalana na podstawie szerokosci i wysokości w przedziale co 10 cm. Czyli inna cena będzie przy wymiarze 50 cm szer i 100 cm wys. a inna będzie przy wymiarze 50 cm szer. i 102 cm wys. Cena wyliczana na podstawie wymiarów jest ceną podstawową do której odnosić się mają ewentualne dopłaty za np. rodzaj rolety, sposób montażu, kolor materiału czy obudowy. Dopłaty miałyby być w formie + X % do ceny.

0

Istotny jest algorytm ustalania ceny na podstawie szerokości i wysokości. Za każdy cm, czy co 10 cm są przedziały, czy im dłuższe tym są jakieś zniżki? Te dopłaty są jasne jedyne co to zakładam, że każdy ze składników produktu tj. np. profil, materiał ma jakiś wariant podstawowy. Produkt powinien składać się z podstawowych składników, a jeśli ktoś zamawia inny materiał to wtedy ma dopłatę do podstawowego materiału (analogiczne z innymi składnikami). Jeśli jest inaczej to prośba o informację.

0

Cena zmienia się co 10 cm przy szerokości wysokości. Nie ma zniżek im produkt jest dłuższy albo szerszy. Czy w takim razie trzeba by ustawiać przy cenie bazowej takie zapytanie ?

SELECT 'plisa',`cenabazowa`,` FROM `konfigurator` WHERE `cenabazowa_szerokosc` BETWEEN 60 AND 70 AND 'cenabazowa_wysokosc'  BETWEEN 60 AND 70; 
0

Zaproponowałbym schemat jak poniżej. Oczywiście wszystko trzeba jeszcze sprawdzić bo na szybko napisane.
Założenia:

  1. Tabela cennik uzupełniana jak w linku http://sqlfiddle.com/#!9/e9d2648/1
  2. Poszczególne tablice tj. plisy, profile, materiały, sposoby_montazy powinny mieć "podstawowy wariant" tzn. jest jeden rekord gdzie doplata_procent ma wartość 0

rolety2.png

0

Według tego linku jaki podesłałeś tworzy się oddzielna cena dla szerokości pomiędzy np. 11-20 cm i oddzielna cena dla wysokości pomiędzy 11-20. A ja potrzebuję uzyskać jedną cenę gdy parametr szerokość na np. zakres 11-20 i parametr wysokość na zakres 11-20...

Czyli mam taką tabelkę :

szer/wys 20 30 40 50
10 23 28 32 38
20 27 31 34 39

Jeśli Klient wypisze mi wymiar 18 cm szer. x 45 cm wys. to powinna mu się wyświetlić cena z wymiarów zaokraglanych w górę czyli 39

0

W linku masz jedną wartość dla ceny (cena_finalna) za podaną wysokość i szerokość (kwestia odpowiedniego zapytania) http://sqlfiddle.com/#!9/e9d2648/28
Oczywiście w tablicy cennik muszą być zdefiniowane przedziały dla wysokości i szerokości.
Można jeszcze pokusić się o atrybuty data obowiązywania od i do w tablicy cennik - dzięki temu zmiana cennika nie będzie wpływała na złożone już zamówienia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1