• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Ocena projektu bazy danych ksiegarnia online

0 głosów
4,737 wizyt
pytanie zadane 25 marca 2017 w SQL, bazy danych przez balti Obywatel (1,040 p.)
zamknięte 26 marca 2017 przez balti

Witam,

Ostatnio zainteresowałem się bazami danych i stworzyłem swój pierwszy projekt bazy "księgarnia online" :

Czyli klient jest w stanie złożyć wiele zamówień każde zamówienie może być na wiele książek itd

Zastanawiam się, jak określić ile książek o danym tytule jest na stanie?

Czy może ktoś to ocenić i doradzić nad czym się skupić, co poprawić itd?

komentarz zamknięcia: W komentarzach odpowiedzieli,  jak mogę usprawnić bazę, dlatego zamykam ;)

2 odpowiedzi

+1 głos
odpowiedź 25 marca 2017 przez ShiroUmizake Nałogowiec (46,300 p.)
Tak, ale każde zamówienie to osobne id.

Dołoż magazyn: Magazynie jest wiele książek, ale jedna książka ma jeden magazyn.  Magazyn przechowuje ilość ksiązek (stock).
0 głosów
odpowiedź 25 marca 2017 przez balti Obywatel (1,040 p.)
edycja 25 marca 2017 przez balti

Tak teraz to wygląda. Zastanawiam się, jak bym mógł tą bazę usprawnić i na czym powinienem się skupić przy projektowaniu baz ?

komentarz 25 marca 2017 przez mbabane Szeryf (79,260 p.)
Mozesz tez dodac do zamowienia pole bool, ktore bedzie mowilo czy zamowienie zostalo zrealizowane.

Mozna sie tez zastanowic czy aby na pewno dobrym pomyslem jest tworzenie osobnej tabeli dla tych rodzajow kontaktow, w koncu jesli to ma byc jakis sklepik internetowy to do takiego pola bedzie sie czesto odwolywac w poszukiwaniu adresu email.

Do zamowienia przydalaby sie tez moze ilosc ksiazek, jesli ktos bedzie chcial zamowic 50 egzemplarzy jakiejs ksiazki to wydaje mi sie ze bez sensu bedzie tworzenie 50 wpisow.
komentarz 25 marca 2017 przez lukas$ Gaduła (3,390 p.)
Witam,

Nie grzebałem w bazach danych szczegółowo ale nie wiem czy nie można utworzyć równania gdzie po zamówieniu odejmowałoby produkt z magazynu i pokazywało rzeczywistą liczbę produktów w głównym magazynie.

Prawdopodobnie można uprościć taki skrypt który aktualizuje bazę danych jeżeli zamówienie zostało złożone z "var"
komentarz 25 marca 2017 przez balti Obywatel (1,040 p.)
Zrobiłem tak jak napisałeś mbabane ale zastanawiam się dlaczego nie dodać pola ilość książek do tabeli Zamowienie_Ksiazki?
komentarz 25 marca 2017 przez ShiroUmizake Nałogowiec (46,300 p.)
Tak są, nazywa się to transakcja. Ale nie każde opgramowanie SQL to obsługuje.
komentarz 25 marca 2017 przez mbabane Szeryf (79,260 p.)

Nie grzebałem w bazach danych szczegółowo ale nie wiem czy nie można utworzyć równania gdzie po zamówieniu odejmowałoby produkt z magazynu i pokazywało rzeczywistą liczbę produktów w głównym magazynie.

Tak, oczwyscie tak sie da bez problemu, tylko jak potem zrealizowac takie zamowienie? Zauwaz, ze jakies zamówienie może być zrealizowane np. na drugi dzien, jak wtedy odtworzyc sobie zamowioną ilosc jakiegos towaru?

komentarz 25 marca 2017 przez mbabane Szeryf (79,260 p.)

dlaczego nie dodać pola ilość książek do tabeli Zamowienie_Ksiazki?

Tak do tej tabelki nalezaloby dodac takie pole.

komentarz 25 marca 2017 przez balti Obywatel (1,040 p.)
Ostatnie pytanie na co patrzeć przy projektowaniu takiej bazy, by była prosta do użytku w programie?
komentarz 25 marca 2017 przez ShiroUmizake Nałogowiec (46,300 p.)

Tak, oczwyscie tak sie da bez problemu,tylko jak potem zrealizowac takie zamowienie? Zauwaz, ze jakies zamówienie może być zrealizowane np. na drugi dzien, jak wtedy odtworzyc sobie zamowioną ilosc jakiegos towaru?

Zapasowa tabela? (Oznakowanie "dirty" niezrealizowany), bądż z redo logów. 

komentarz 25 marca 2017 przez lukas$ Gaduła (3,390 p.)
Wszystkie zamówienia mogą zostać przyjęte jednego dnia a realizowane przez system automatycznie drugiego wtedy będą się wszystkie sumować lub w bazie danych utworzyć formułę że zlecenia są przyjmowane do którejś godziny a po tej godzinie realizowane na drugi dzień.

Reasumując wtedy baza danych zlicza wszystkie zamówienia jednego dnia do określonej godziny i masz podsumowanie ilości ile jest w magazynie.

W bazie zamówienia które są po tej godzinie są jakby zatrzymane pause i uruchamiane z nowym licznikiem całego magazynu produktów. Jeżeli dany produkt ma w magazynie 0 wtedy zamówienie jest anulowane i wysyłana informacja do użytkownika zamówienia, Nowe zamówienia mogą być przesuwane przez operację w bazie danych na następny dzień lub w bazie danych możesz ustawić limit produktów wtedy nie będziesz miał problemu z nadwyżką zamówień.
komentarz 25 marca 2017 przez mbabane Szeryf (79,260 p.)

lukas$,

Nie wiem czy wszystko dobrze zrozumiałem.

Reasumując wtedy baza danych zlicza wszystkie zamówienia jednego dnia do określonej godziny i masz podsumowanie ilości ile jest w magazynie.

Czy jeśli chce złożyć zamówienie na 50 egzemplarzy jakiegoś towaru, to czy wtedy muszę składać 50 osobnych zamówień?

Czy to co przedstawiłeś to jest jakiś konkretny algorytm, czy Twoje własne przemyślenia?

komentarz 26 marca 2017 przez lukas$ Gaduła (3,390 p.)
To są moje przemyślenia. Prosiłeś o bazę aby była klarowna i przejrzysta to podałem kilka wskazówek jak mogłaby wyglądać.

Zamówienie na 50 egzemplarzy to o ile się nie mylę traktuję się jako jedno zamówienie po ID

Z tego co rozumiem utworzyłeś bazę danych dla każdego klienta który zamawia książki i za nie płaci.

Kolega wyżej podpowiedział dobrze utworzenie magazynu w którym istnieją książki i po zamówieniu są odliczane od sumy magazynowej.

Wtedy masz ciągle aktualny stan magazynu i książek

Bo jeśli dodasz pozycję z magazynu - x

książek zamówionych przez klienta y

to suma książek w magazynie zmniejszy się o wartość ujemną

Przykład wziąłem z Excel'a ale prawdopodobieństwo napisania ich jako  echo i var powinien serwer i baza odbierać że jeżeli istnieje taka funkcja lub wartość to zostanie zrealizowane zamówienie lub jakaś pozycja jeśli jej nie ma zostanie odrzucona jak napisałeś wcześniej dirty bo wartość książek w magazynie wynosi 0.

Nie znam się dokładnie na bazie danych.
komentarz 26 marca 2017 przez mbabane Szeryf (79,260 p.)

Nie nie, ja nie jestem autorem bazy danych - tez staram sie pomoc.

Zamówienie na 50 egzemplarzy to o ile się nie mylę traktuję się jako jedno zamówienie po ID

Teoretycznie tak, ale w praktyce mamy jeszcze tabelke dzieki, ktorej do jednego zamowienia mozemy dodac wiele ksiazek.

Podobne pytania

0 głosów
0 odpowiedzi 824 wizyt
pytanie zadane 25 kwietnia 2017 w SQL, bazy danych przez FocuSsmok Początkujący (450 p.)
0 głosów
0 odpowiedzi 101 wizyt
0 głosów
1 odpowiedź 4,606 wizyt
pytanie zadane 24 lipca 2018 w SQL, bazy danych przez Antero00 Gaduła (3,670 p.)

93,427 zapytań

142,421 odpowiedzi

322,649 komentarzy

62,787 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...