Mały projekt do oceny

0

Witam, postanowiłem zrobić sobie małą bazę celem ewidencji sprzętu w miejscu gdzie pracuję. Projekt będę robił w między czasie i głównym celem poza stworzeniem bazy jest nauka technologii sql oracla.. Pierwszy etap już mam za sobą zainstalowałem bazę. Teraz czas na drugi projekt samej struktury. Na razie nie duża może z czasem się rozwinie.

struktura_sql.PNG

Główne założenia
Klauzula może mieć wiele systemów lecz jeden system może posiadać tylko jedną klauzulę
Sprzęt może mieć jedną kategorię ale w jednej kategorii może być wiele sprzętu
Dysk może być w jednym komputerze (sprzęcie ) ale dany sprzęt może posiadać wiele dysków
Użytkownik Sprzętu może posiadać wiele Sprzętu lecz sprzęt może być przypisany do jednego użytkownika
Obciążenia wybrany użytkownik Sprzętu może być obciążony finansowo wieloma sprzętami lecz sprzęt może być przypinany do jednego użytkownika celem obciążenia

Prosił bym o wszelkie wskazówki osób doświadczonych bo w tym wątku chciałbym rozwijać mój projekt z waszą pomocąrelacje.PNG

0

@goscyniok: Poniżej kilka punktów na które zwróciłem uwagę:

  • Co do samych relacji to nie rozumiem jaką funkcję ma tabela Obciążenia? W tej chwili przechowywane są tam tylko IDki więc nie wiem w jakim celu miałbyś z niej korzystać.
  • Wydaje mi się, że tabelę Dyski możesz jeszcze znormalizować. Zobacz mój kursy odnośnie normalizacji bazy danych, powinien pomóc :)
  • Dobrą praktyką jest pisanie nazw tabel i kolumn przy użyciu snake_case
  • Przy ustawianiu kolumny z PK wystarczy nazwać ją ID
  • Tam gdzie masz kolumny VARCHAR2 dodaj typ wielkości np. VARCHAR2(50 CHAR)
  • Przy niektórych VARCHAR2 nie podałeś wielkości np. Stopień w tabeli UzytkownikSprzetu
  • Czemu kolumna Model jest typu BLOB?

Jeżeli będziesz miał jeszcze pytania wal śmiało :)

0

@oracledev:

O dzięki za zaangażowanie o takie uwagi mi chodziło:

ad1) Obciążenia. Chodzi tutaj że poza UżytkownikiemSprzętu który fizycznie posiada sprzęt na biurku jeszcze jest grupka osób która posiada dany sprzęt na obciążeniu finansowym.
Czyli powiedzmy Kowalski na swoim obciążeniu ma 20 komputerów, ale te 20 komputerów stoi na 20 biurkach u różnych użytkowników

ad2)Zapoznam sie i po obejrzeniu wypowiem się

ad3) Jak takie są dobre praktyki to zastosuje to w momencie implementacji już
ad4) Racja bedzie łatwiej wyszukiwać
ad50 i ad6) Oki jak robić to porządnie pododaje wartości
ad7) tutaj na pewno wdał sie błąd, Varchar2 powinien być

Oki dzięki za uwagę zapoznam się z twoim kursem wprowadzę zmiany i wrzucę jeszcze raz

0

Nie jest Ci potrzebne powiązanie między Obciążeniami a tabelą główną sprzętu, spokojnie połączysz to sobie joinami, poza tym masz już jedno połączenie między tabelą główną a użytkownikiem sprzętu, a to na użytkowniku ciąży obciążenie.
Na razie nie widzę nic innego, jak coś to dopiszę.

1

Wywaliłbym numer PESEL bo tworzysz bazę danych przetwarzającą dane osobowe. Zamiast numeru PESEL daj 4 ostatnie cyfry z numeru PESEL. Jeżeli baza ta ma się Ci do czegoś przydać to dodaj rok zakupu oraz dodatkową tabelę do zapisu ewentualnych napraw. Poza tym np. Dell oprócz s/n ma Service TAG. Jakieś uzasadnienie np. sprawy bezpieczeństwa ma takie dokładne zbieranie informacji o dyskach twardych w każdym komputerze ? Doświadczenie uczy, że w takich bazach przydają się skany dokumentów np. faktur więc następna tabela na te skany. Brakuje najważniejszego pola UWAGI !

0

To chyba jakieś służby mundurowe stopień przy użytkowniku i klauzula przy komputerze stąd może i te numery seryjne dysków:)

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