(SQL) Projekt hurtowni bazy danych

0

Witam,
Mamy do zaprojektowania hurtownie bazy danych dla kawiarni w postaci płatka śniegu. Na początku zrobiliśmy następującą bazę:
user image
Jednak według tego wyżej okazuje się, że hurtownie wykonaliśmy źle z następujących powodów:
-w centrum ma być pojedynczy fakt, sprzedaż jednej rzeczy a nie całości
-u nas sprzedaż nie jest pojedyncza sprzedażą a jakby to co powinno znaleźć się w paragonie

Poprawiliśmy bazę w następujący sposób:
user image

Czy taka hurtownia jest już poprawna czy coś jeszcze powinienem zmienić?
Pozdrawiam.

1

Nie wiem czy tam dobrze widzę w tabeli faktów jest atrybut - czas sprzedaży. Czas jest zawsze wymiarem, a tutaj tego wymiaru nie ma. Co jeżeli chciałbym sprawdzić sprzedaż towarów w danym miesiącu ? Klucz główny tabeli faktów może być złożony z kombinacji klucz obcych do wymiarów, bez potrzeby tworzenia nowego pola id_sprzedaz.

0

Zgodnie z tym co napisałeś nie jesteśmy pewni czy lepiej będzie stworzyć tabelę zawierającą datę jako poszczególne pola, czy może jako poszczególne tabele rozdzielone np na miesiąc, kwartał, rok itd. (różne można spotkać przykłady szukając w internecie). I czy np godzinę można trzymać już w tabeli faktów, czy również w osobnej tabeli?
user image

1

Rozbicie do jednej tabeli - wymiaru Daty jest wystarczające, wg mnie niepotrzebnym jest tworzenie bezcelowych powiązań. Inna sprawa ma się z czasem, spotyka się podejście, że wymiar czasu i daty. Dzięki temu można badać dane z uwzględnieniem tylko czasu. Np. dla hurtowni danych zbudowanej dla sieci sklepów spożywczych można zbadać, w którym przedziale czasowym najlepiej sprzedaje się alkohol (oczywiście przy jednej tabeli zawierającej datę i czas jest to również możliwe). Odnośnie podziału na wymiar czasu i daty - http://dinesql.blogspot.com/2014/10/mdx-get-last-24-hours-period.html .

0

Dzięki za pomoc :)

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