Database
 sql >> Baza danych >  >> RDS >> Database

Jak przechowywać harmonogramy pracowników w bazie danych

Poziom:początkujący

Tak wiele organizacji boryka się z powszechnym problemem przechowywania grafików pracowników. Bez względu na to, jaka instytucja:firma, uczelnia czy po prostu osoba fizyczna, wiele podmiotów potrzebuje aplikacji do przeglądania grafików. Dlatego postaram się wymyślić model bazy danych, a następnie w kolejnym artykule porozmawiamy o prostej aplikacji do przechowywania harmonogramów pracowników w bazie danych.

Obecnie projekt wygląda następująco:

Model jest dość prosty.

Wskazówka – naturalne i zastępcze kluczowe strategie

  1. Użyj zastępczego klucza podstawowego zawsze, gdy wartości w kluczu naturalnym mogą ulec zmianie lub gdy klucz naturalny byłby zbyt złożony.
  2. Jeśli naturalny klucz kandydujący składa się z niewielkiej liczby kolumn (najlepiej tylko jednej) i jego wartości się nie zmieniają – użyj go jako naturalnego klucza podstawowego

Więcej informacji o naturalnych i zastępczych kluczach podstawowych.

employee tabela zawiera podstawowe atrybuty opisujące każdego pracownika, na przykład:imię, nazwisko, adres i numer telefonu. Imię i nazwisko nie identyfikują jednoznacznie każdego rekordu (może być więcej niż jedna osoba o tym samym imieniu i nazwisku), dlatego wprowadzono nową kolumnę (id ), zwany kluczem zastępczym .

schedule tabela zawiera dni i godziny, w których każdy pracownik jest w pracy. work_date kolumna określa dzień, w którym każdy pracownik pracował. start_work_hour i end_work_hour kolumny identyfikują godziny pracy w tym dniu.

Załóżmy, że mamy pracownika o imieniu Piotr. Był w pracy 4 lutego i zaznaczył swój czas rozpoczęcia i zakończenia w harmonogramie.

Odpowiedni wiersz w schedule tabela wygląda tak:


id identyfikator_pracownika data_pracy start_work_hour end_work_hour jest_wakacje is_weekend
1 1 04.02.2015 10 16 0 0


Budując taki system, możemy chcieć wiedzieć, kto pracował najwięcej nocy lub kto pracował najwięcej weekendów/święt. Aby wygenerować raporty zawierające takie informacje, kolumny is_holiday i is_weekend zostały wprowadzone.

Stosując to podejście, będziesz potrzebować oddzielnej tabeli dla dni wolnych, która zawiera daty dni wolnych dla firmy. Gdy pracownik wprowadza swój czas pracy, kolumny is_holiday i is_weekend można zaktualizować za pomocą wyzwalacza. Po wstawieniu daty i godziny wyzwalacz sprawdzi, czy data jest dniem wolnym od pracy czy weekendem i wstawi poprawną wartość w polu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dodaj kolumnę do tabeli w SQL

  2. Podstawowe polecenia SQL:jak pisać proste zapytania z przykładami

  3. Wprowadzenie do Hadoop i Big Data

  4. AKTUALIZACJA SQL dla początkujących

  5. SQL WYBIERZ W