III postać normalna - sprawdzenie bazy "browaru"

0

Cześć ;-)
W ramach zadania zaliczeniowego miałem zaprojektować bazę danych, która dodatkowo będzie w trzeciej postaci normalnej.
Byłby ktoś łaskaw zerknąć na wynik mojej pracy i wskazać ewentualne błędy?

http://i.imgur.com/vy99h8C.png
user image

Z racji, że ostatnio moim hobby jest domowe piwowarstwo z przyjaciółmi, to o tę dziedzinę się zaczepiłem z projektem.
"Piwa" to tak jakby przepis na konkretne piwo, określane są tam cechy danego stylu, jak również potrzebne do wytworzenia składniki.
"Warki" to realizacje piw - nastawione kilkanaście litrów zgodnie z danym przepisem, plus dodatkowe cechy takie jak nazwa, czy data utworzenia.
"Słody", "Chmiele", "Drożdże" to składniki potrzebne do poszczególnych piw - do danego piwa może być przypisanych kilka słodów/gatunkó drożdży/chmielów - stąd tabele łącznikowe, niwelujące relację wiele-wiele.
W "Sklepach" można kupić wspomniane wcześniej składniki - jeden w wielu sklepach, a w jednym sklepie - wiele składników, więc ponownie niweluję relację wiele do wielu.
"Fermentacja" to wydzielona tabela, określająca w jaki sposób fermentowane będzie dane piwo.
Lewa strona dodana została dla powiększenia projektu niż z rzeczywistej potrzeby.
"Browarnicy" to osoby współpracujące przy robieniu piwa, każda z ich może się w czymś specjalizować ("Specjalizacje"), każda z nich może pobrać jakąś ilość piwa ze zbiorów <<browaru>>, oraz dokonać zamówienia ("Zamówienie") w konkretnym sklepie, dzięki czemu dostępna jest informacja o tym, kto ma jaki wkład w działalność interesu.

Z góry dzięki za pomoc!
J.

1

Warka.AktualnaLiczbaButelek - dane nadmiarowe, wynikają z UzyskanaLiczbaButlek - Sum(PobranePiwa.LiczbaSztuk)
Piwa.Zacieranie - czy to jest mniej więcej specyficzne do piwa czy to są jakieś rodzaje? Bo jeśli rodzaje to trzeba by je do tabeli słownikowej przenieść
Producenci to powinna być osobna tabela a w tych trzech tylko IdProducenta
Sklep. Nazwa i Adres 45 znaków to może być mało
Nie rozumiem tabeli zamówienia

0

Dzięki za odpowiedź!

Zacieranie chyba koniec końców wypadnie wydzielić do osobnej tabeli, żeby wybrać z paru rodzajów.
Co do producentów - każdy z trzech czynników miałby innych producentów (ewentualnie kilku mogłoby się powtórzyć), wtedy trzy osobne tabele będą poprawne?
Słuszna uwaga odnośnie długości, poprawię.

Zamówienie oznacza, że dana osoba (Browarnik) wydała X kasy na zakupy w sklepie Y. Powinienem dodać tam jeszcze jakąś datę zakupu, żeby uniknąć powtarzalnych danych? Bo sytuacja, że browarnik A zrobił kilka razy zakupy za dokładnie tyle samo złotych w tym samym sklepie jest możliwa?

1

producenci - po co trzy tabele? Jeśli chcesz rozróżnić to dodaj pole, które będzie opisywało czego jest producentem
zamówienia - jeśli nie chcesz prowadzić ich szczegółowo (czyli nagłówek z datą i sklepem oraz pozycje z towarem, ilością i ceną) tylko ogólnie ile wydano jednorazowo to potrzebna by była jakaś data i id (numer) zamówienia do tego bo nie możesz wykluczyć, że ktoś zrobi dwa razy zakupy w tym samym dniu

0

Wystarczy mi, gdy dodam id+datę do zamówień, nie będę się wgłębiał w łączenie tego z produktami. A co do producentów to rzeczywiście, przecież mogę mieć ich wspólnych.
Wielkie dzięki za pomoc!

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