Poprawna struktura tabel

0

Witam
Mam za zadanie wykonać system rejestracji czasu pracy. Zastanawiam się nad strukturą tabel, które muszę tutaj utworzyć. Niestety nie mam za dużej praktyki w obsłudze tego typu rzeczy więc prosił bym was o pomoc.
W systemie występują tylko dwa rodzaje przyłożenia karty do czytnika (1. początek pracy; 2. koniec pracy)
musi istnieć możliwość dodania/usunięcia użytkownika i karty.

Przygotowałem sobie następujące tabele:
Użytkownik:
id_uzytkownika
Imie
Nazwisko
Opis
status (aktywny/nieaktywny/?)

Karty:
id_karty
NumerKarty
opis
Data_ON
Data_OF
status

Zdarzenia_na_kartach:
id
timestamp
NumerKarty
numerUrządzenia (potrzebne do identyfikacji pomieszczenia)

Powiązanie_karta_uzytkownik:
id_karty
id_uzytkownika

Zastanawiam się teraz jak to wszystko połączyć do kupy. Zawsze istnieje możliwość aby pracownik zgubił kartę, zmienił nazwisko, albo go po prostu już nie ma. Problem pojawia mi się w kilku momentach.

  1. Gdy zgubimy kartę - nie wiem jak zrealizować "usunięcie" karty z systemu i pokazywanie w raportach że to faktycznie Kowalski przyszedł do pracy kilka miesięcy temu. Obecnie jak usunę użytkownika nie będę miał informacji
  2. Usuwamy pracownika z bazy. Ponownie mam problem z raportami.
  3. zgubienie karty - czyli do pracownika powinno być przypisanych wiele kart w jednym momencie?
  4. Karta się odnajdzie i użytkownik postanowi dać ją komuś innemu niż Kowalski

Był bym bardzo wdzięczny za rozjaśnienie mi powyższych problemów.

0

Ad. 1 i 2 : masz pole status w tabeli pracownik i karta, zamiast usuwać zmieniasz status na nieaktywny/zablokowany
Ad. 3 i 4 : dla tabeli powiązania pracownik-karta dodaj kolumnę OBOWIAZUJE_OD i później będziesz sobie mógł sprawdzić jaki pracownik z jaką kartą był powiązany w konkretnej dacie.

0

Dzięki. Właśnie czegoś takiego mi brakowało.
Dodam jeszcze jednak OBOWIAZUJE_DO będę wówczas miał jasno zdefiniowane zakresy. Dzięki za pomoc.

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