Schemat bazy danych punktów sprzedaży i zapasów

Próbuję utworzyćpodstawowy System zarządzania punktami sprzedaży i zapasami.

Kilka rzeczy, które należy wziąć pod uwagę:

Produkty są zawsze takie same (ten sam identyfikator) w całym systemie, ale zapasy (dostępne jednostki na sprzedaż na produkt) są unikalne dla każdej lokalizacji. Lokalizacja Y i Z mogą mieć jednostki sprzedaży produktu X, ale jeśli, na przykład, dwie jednostki są sprzedawane z lokalizacji Y, nie powinno to mieć wpływu na stan inwentarza Z.Jego zaopatrzone jednostki są nadal nienaruszone.Sprzedaż jednej (1) jednostki produktu X z lokalizacji Y oznacza, że ​​zapasy lokacji Y powinny odjąć jedną jednostkę z jej ekwipunku.

W związku z tym pomyślałem o tych tabelach:

lokalizacje

IDimię

produkty

IDimię

transakcje

IDopis

inventories_header

IDid_lokacjiID produktu

inventories_detail

inventories_idIdentyfikator transakcjiCena jednostkowaCena jednostkowaIlość

orders_header

IDdatasuma (obliczona na podstawie ilości zamówień_wysokość * cena; tylko dla przyszłej weryfikacji danych)

order_detail

order_idIdentyfikator transakcjiID produktuIlośćCena £

Dobra, czy są jakieś pytania? Oczywiście.

Jak śledzić zmiany kosztów jednostek? Jeśli pewnego dnia zacznę płacić więcej za określony produkt, musiałbym śledzić użyteczność marginalną ((cost*quantity) - (price*quantity) = marginal utility) w jakiś sposób. W tym celu myślałem o inventories_detail. Nie dbałbym o to inaczej.Czy relacje są dobrze ugruntowane? Nadal trudno mi myśleć, czy lokalizacje mają zapasy lub czy zapasy mają kilka lokalizacji. To szaleństwo.Jak utrzymasz / poznasz swoje obecne poziomy zapasów? Ponieważ musiałem oddzielić tabelę inwentaryzacji, aby nadążyć za aktualizacjami kosztów, myślę, że musiałbym zsumować wszystkie ilości podane w spisie inwentarza.Wszelkie sugestie, które chcesz udostępnić?

Jestem pewien, że wciąż mam kilka pytań, ale są to głównie te, których potrzebuję. Ponadto, ponieważ używam Ruby on Rails po raz pierwszy, w rzeczywistości, jako doświadczenie uczenia się, wstydem jest być zatrzymanym przy projektowaniu, nie pozwalając mi na szybsze wdrażanie, ale myślę, że tak powinno być.

Z góry dziękuję.

questionAnswers(2)

yourAnswerToTheQuestion