weryfikacja poprawności schematu bazy danych

0

Cześć,

mam prośbę o weryfikację/wskazanie błędów w przygotowanym przeze mnie schemacie bazy danych.
Schemat jest bardzo prosty i pewnie w mgnieniu oka znajdziecie w nim błędy. Na początku zaznaczę, że jest to moje pierwsze podejście (i niewykluczone, że ostatnie) do budowania baz danych, jakkolwiek bardzo chciałbym zrozumieć zasady, którymi należy się kierować.
Diagram w załączeniu, kod DDL też.

Schemat bazy danych dotyczy gospodarstwa składającego się z wielu działek ewidencyjnych. Numery działek w jednym gospodarstwie mogą się powtarzać, dlatego dodałem obręby.
Na każdej działce mogą, ale nie muszą w danym roku, być uprawiane rośliny (może być tak, że działka w danym roku nie jest uprawiana).
Na każdej z działek mogą też być prowadzone zabiegi (wyróżniamy trzy rodzaje: Nawożenie, Opryski, Zabiegi Agrotechniczne). Zabiegi mogą, ale nie muszą być przeprowadzane na konkretnej działce. Zabiegi mogą, ale nie muszą być powiązane z rośliną, bo mogą być wykonywane przez siewem, ewentualnie po zbiorze roślin.
Zabiegi są wykonywane konkretną maszyną (jeden zabieg, jedną maszyną. Ta sama maszyna może wykonywać wiele zabiegów).
Maszyny są sterowane przez Operatorów (jedną maszyną steruje jeden Operator. Ten sam Operator może obsługiwać wiele maszyn).

Bardzo proszę o Wasze uwagi dotyczące stworzonej przeze mnie bazy. W szczególności:

  • czy wszystkie tabele są potrzebne (mam wątpliwości, czy tabela "Zabiegi" cokolwiek wnosi)?
  • czy część atrybutów w tabelach nie jest niepotrzebnie powtórzona/nie brakuje ważnych?
  • czy relacje są poprawne?

Z góry dziękuję za pomoc
"Zielony"

0

Moja propozycja jak poniżej (typy danych orientacyjne).
rodzaje dzialan - tablica z wartościami: oprysk, uprawa. zabieg agr. 1, zabieg agr. 2
materialy - tablica z nawozami jak i roślinami, wszystkie atrybuty nie są wymagane
dzialania - tablica z działaniami, data_zbioru i material_id nie są wymagane
materialy_rodzaje - tablica z wartościami: nawóz, roślina 1.

gospodarstwa.png

0
dbuser napisał(a):

Moja propozycja jak poniżej (typy danych orientacyjne).
rodzaje dzialan - tablica z wartościami: oprysk, uprawa. zabieg agr. 1, zabieg agr. 2
materialy - tablica z nawozami jak i roślinami, wszystkie atrybuty nie są wymagane
dzialania - tablica z działaniami, data_zbioru i material_id nie są wymagane
materialy_rodzaje - tablica z wartościami: nawóz, roślina 1.

gospodarstwa.png

Dzięki "dbuser".
Czy mógłbyś podesłać jeszcze kod DDL Twojego diagramu?
Co do tabel, wszystkie możliwe zabiegi (Nawozenie, Oprysk, ZabiegiAgro, ale też RodzajUprawy) zostały wrzucone do tabeli Materiały, dobrze rozumiem?
Czy ma znaczenie, że nie wszystkie atrybuty mają zastosowanie, np. "okresKarencji" ma zastosowanie tylko przy Opryskach?

0

Zabiegi zostały wrzucone do tablicy działania. W tablicy materialy masz atrybuty dla konkretnego materiału użytego do danego działania np. dla nawóz, konkretny gatunek rośliny. W zależności od zabiegu (np. dla oprysk, uprawa) uzupełniane należy wskazać materiał (dla uprawa w działania również data zbioru). Dla pozostałych zabiegów (np. koszenie) materiału nie ma wiec nie wskazujemy.
Nie ma znaczenia, że nie wszystkie atrybuty są zawsze uzupełniane - oczywiście na warstwie dla użytkownika można tak zrealizować wprowadzanie danych, że w zależności od rodzaju działania i rodzaju materiału pojawia się wymagane pola.

0
dbuser napisał(a):

Zabiegi zostały wrzucone do tablicy działania. W tablicy materialy masz atrybuty dla konkretnego materiału użytego do danego działania np. dla nawóz, konkretny gatunek rośliny. W zależności od zabiegu (np. dla oprysk, uprawa) uzupełniane należy wskazać materiał (dla uprawa w działania również data zbioru). Dla pozostałych zabiegów (np. koszenie) materiału nie ma wiec nie wskazujemy.
Nie ma znaczenia, że nie wszystkie atrybuty są zawsze uzupełniane - oczywiście na warstwie dla użytkownika można tak zrealizować wprowadzanie danych, że w zależności od rodzaju działania i rodzaju materiału pojawia się wymagane pola.

Dzięki za pomoc.

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