IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Návrh tabulky

Aktivity
Avatar
Michal Štěpánek:27.9.2017 10:20

Před mnoha lety jsem u nás ve firmě spáchal aplikaci (v PHP) – Dispečink požadavků. Překvapivě po 12ti letech už mnoho věcí není tak, jak bylo původně a tak se tu webovou appku snažím předělat do ASP.NET MVC. Mezi jinými funkcemi tam je i možnost zadávání absence dělníků. Udělal jsem si na to tenkrát tabulku:

ID, Id dělníka, měsíc, rok, d01, d02, d03, atd…, až d31

Při zadávání absence se buď vytvoří nový záznam, nebo pokud již existuje, tak se „updatne“.
Nedalo by se to nějak vylepšit? Samozřejmě to můžu takto použít i v tom novém řešení, ale přijde mi to dneska takové divné, myslím, že by se to dalo řešit nějak lépe…
Jak byste toto řešili vy? Děkuji za nápady

Editováno 27.9.2017 10:20
Odpovědět
27.9.2017 10:20
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Robert Poč
Člen
Avatar
Robert Poč:27.9.2017 13:57

Tak 31 sloupců (d1 .. d31) v tabulce + identifikace měsíce a roku lze zajistit jediným typu DATE, tan snad obsahuje veškeré informace. Potřebuješ li to na hodiny, pak dvěma DATETIME (od - do).

 
Nahoru Odpovědět
27.9.2017 13:57
Avatar
Odpovídá na Robert Poč
Michal Štěpánek:27.9.2017 14:56

To můžu, ale pak bych měl ke každé absenci jeden záznam. Tady se zobrazil celý měsíc a psaly se tam zkratky absencí ke konkrétnímu dni v měsíci: D - dovolená, NV - náhradní volno, N - nemoc, OČR, SC, atd...

Nahoru Odpovědět
27.9.2017 14:56
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Robert Poč
Člen
Avatar
Robert Poč:27.9.2017 15:15

Osobně si myslím, že je jeden smysluplný záznam k nějaké události lepší, než 30 prázdných sloupců bez informační hodnoty, generovaných kvůli jedné události. Pokud každý ze 100 zaměstnanců bude absentovat jeden den, máš 100 záznamů, u tvého řešení máš 100 záznamů x 31 slopců, tj. 100 záznamů a 3 000 hodnot bez informační hodnoty, balast pro nafukování DB.

Následné dotazování do DB by mělo být obecné DATE = NĚJAKÁ_PODMÍNKA a ne opačně, když je NĚJAKÁ_PODMÍNKA, podívej se do sloupce Dxx. Jak zjistíš, absenci v pondělky za posledních x let?

S trochou nadsázky mi to příjde stejné, jako bysi místo idPravovnika držel u každého záznamu Jméno, Příjmení, Pracovní pozici, Bydliště a Platové zažazení a tvrdil, že se to bude hezky zobrazovat, interpretace dat a jejich storage je něco jiného.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
27.9.2017 15:15
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.