Úroveň:Začátečník
Mnoho organizací se potýká s běžným problémem ukládání rozvrhů zaměstnanců. Bez ohledu na to, jaká instituce:společnost, univerzita nebo prostě jednotlivec, mnoho subjektů potřebuje aplikaci k zobrazení rozvrhů. Pokusím se proto přijít s databázovým modelem a pak si v příštím článku povíme o jednoduché aplikaci pro ukládání rozvrhů zaměstnanců do databáze.
V současné době vypadá design následovně:
Model je docela přímočarý.
Tip – Přirozené a náhradní klíčové strategie
- Použijte náhradní primární klíč, kdykoli by se hodnoty v přirozeném klíči mohly změnit nebo když by přirozený klíč byl příliš složitý.
- Pokud se přirozený kandidátský klíč skládá z malého počtu sloupců (ideálně pouze jednoho) a jeho hodnoty se nemění – použijte jej jako přirozený primární klíč.
Další informace o přirozených a náhradních primárních klíčích.
employee
tabulka obsahuje základní atributy popisující každého zaměstnance, např.:jméno, příjmení, adresa a telefonní číslo. Jméno a příjmení neidentifikují jednoznačně každý záznam (může být více osob se stejným jménem a příjmením), proto byl zaveden nový sloupec (id
), který se nazývá náhradní klíč .
schedule
tabulka obsahuje dny a hodiny, kdy je každý zaměstnanec v práci. work_date
sloupec uvádí den, kdy každý zaměstnanec pracoval. start_work_hour
a end_work_hour
sloupce označují pracovní dobu pro daný den.
Předpokládejme, že máme zaměstnance jménem Petr. 4. února byl v práci a čas začátku a konce si označil v rozvrhu.
Odpovídající řádek v schedule
tabulka vypadá takto:
id | id_zaměstnance | pracovní_datum | start_work_hour | end_work_hour | je_svátek | je_víkend |
1 | 1 | 10 | 16 | 0 | 0 |
Při budování takového systému můžeme chtít vědět, kdo pracoval nejvíce nocí nebo kdo pracoval nejvíce víkendů/svátků. Aby bylo možné vygenerovat zprávy, které takové informace obsahují, použijte sloupce is_holiday
a is_weekend
byly představeny.
Pomocí tohoto přístupu budete muset mít samostatnou tabulku pro svátky, která obsahuje data svátků pro společnost. Když zaměstnanec zadá svou pracovní dobu, sloupce is_holiday
a is_weekend
lze aktualizovat pomocí spouštěče. Po vložení data a času spouštěč zkontroluje, zda je datum svátek nebo víkend, a do pole vloží správnou hodnotu.