Hjälp programmering/databas/logik stämpelklocka.

Permalänk
Sötast

Hjälp programmering/databas/logik stämpelklocka.

Jag håller på att sitta och skapa en stämpelklocka i Visual Basic som ett litet sidoprojekt åt mig själv.

Problemet jag stöter på är att detta är mitt första projekt, någonsin där jag inte kladdar lite och leker med tutorials.

Ni ser på bilderna mitt tankesätt, jag personligen ska kunna stämpla in och ut, om något blir fel eller om jag ej kunnat stämpla in på en specifik dag så kan detta redigeras i efterhand.

I boxen så skall information finnas, dag för dag in ut.

För att komma till skott med mitt problem så är det helt enkelt:

Vad är ett smart/logiskt sätt att designa databasen i/på?
Hur får man programmet att skriva i databasen efter den designen som man valt?
Sist men inte minst, beräkning av statistiken!

Då jag aldrig gjort något liknande förut så kan jag inte riktigt greppa hur jag ska ta mig till.

Idéer, tankar & snippets är välkomna, jag söker inte en färdigskriven kod om det inte skulle bli till en sista nödlösning

TLDR: Hur designar man en databas till en stämpelklocka? Hur får man programmet att skriva i databasen efter den designen som man valt?
+ Hur får man statistiken att beräkna från rätt plats?

Tack på förhand alla ni vänliga själar

Permalänk
Medlem

Du kommer behöva en kolumn för varje värde du vill stoppa i t.ex. InStämpling, UtStämpling osv osv... In och utstämpling bör nog fyllas i med en timestamp då lägger databasen in det nuvarande klockslaget när du stämplar. Det finns gott om tutorials om vb + databaser (tror MsSQL är att rekomendera i det här fallet?!?!), men har du inte jobbat med DB alls innan så kan det bli en del att bita i tills du förstår hur det hela är uppbyggt och fungerar.

Permalänk
Sötast
Skrivet av Bosnic:

Du kommer behöva en kolumn för varje värde du vill stoppa i t.ex. InStämpling, UtStämpling osv osv... In och utstämpling bör nog fyllas i med en timestamp då lägger databasen in det nuvarande klockslaget när du stämplar. Det finns gott om tutorials om vb + databaser (tror MsSQL är att rekomendera i det här fallet?!?!), men har du inte jobbat med DB alls innan så kan det bli en del att bita i tills du förstår hur det hela är uppbyggt och fungerar.

Det räcker alltså inte med t.ex en txt fil eller xml?
Jag ska plugga lite vbsql för att se om jag kan få lite insyn på det hela!

Tack för svaret!

Permalänk
Skrivet av Allexz:

Det räcker alltså inte med t.ex en txt fil eller xml?
Jag ska plugga lite vbsql för att se om jag kan få lite insyn på det hela!

Tack för svaret!

För dessa enkla problem räcker det med en textfil eller liknande. Det som kommer underlätta för dig med en databas är att mycket redan finns färdigt så du inte behöver "uppfinna hjulet".
Gör du detta i en textfil så behöver du själv se till att ordna med en hel del funktioner, redigeringen kan till exempel bli lite bökig och statistik kan bli bökigt om du inte bara ska summera allt rakt av.
Jag skulle nog börjat med att lösa uppgiften med en strukturerad fil(er) för att lagra information och sedan försökt ändra till en databas om jag ville fortsätta projektet.

Om vi förutsätter fillagring så är ett förslag på struktur:

Datum och tid instämpling Datum och tid utstämpling

Det verkar vara det enklaste och minst krångliga sätter enligt mig. det finns ju dock en hel del saker som måste hanteras, t.ex. utstämpling utan föregående instämpling, två eller flera på varandra följande instämplingar utan utstämpling, borttag/tillägg av helt saknande rader, mm.

Lycka till.

Visa signatur

Jag kan ha fel, men jag tror att jag har rätt.

Permalänk
Sötast
Skrivet av Mattsingen:

För dessa enkla problem räcker det med en textfil eller liknande. Det som kommer underlätta för dig med en databas är att mycket redan finns färdigt så du inte behöver "uppfinna hjulet".
Gör du detta i en textfil så behöver du själv se till att ordna med en hel del funktioner, redigeringen kan till exempel bli lite bökig och statistik kan bli bökigt om du inte bara ska summera allt rakt av.
Jag skulle nog börjat med att lösa uppgiften med en strukturerad fil(er) för att lagra information och sedan försökt ändra till en databas om jag ville fortsätta projektet.

Om vi förutsätter fillagring så är ett förslag på struktur:

Datum och tid instämpling Datum och tid utstämpling

Det verkar vara det enklaste och minst krångliga sätter enligt mig. det finns ju dock en hel del saker som måste hanteras, t.ex. utstämpling utan föregående instämpling, två eller flera på varandra följande instämplingar utan utstämpling, borttag/tillägg av helt saknande rader, mm.

Lycka till.

Tack för hjälpen!

Permalänk
Hedersmedlem

Jag hade använt en xml-fil för detta. Du kan läsa in xml'en i VB.net och hantera den som en databas. Fördelen med detta är att din lösning blir mer stand alone vilket jag gillar. Inga drivrutiner för databas behövs. Nackdelen är att det blir svårt att skriva till xml'en med flera användare eftersom VB kommer att ha hela filen i minnet tills du väljer att skriva den till disk.

För att skapa en databas snabbt och lätt så kan du använda de fälten som föreslagits tidigare. Risken är dock att du snabbt hamnar i ett läge där databasen blir otillräcklig. Vad händer tex om du vill stämpla in och ut flera gånger samma dag, tex för lunch? Vad händer om du glömmer stämpla in eller ut? Osv. Jag hade satsat på en tabell med events, typ bara två kolumner, tidpunkt och händelse. På så vis skulle sjukfrånvaro eller semester också kunna vara händelser. Nackdelen är att det blir lite pusslande att skapa en rapport.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Medlem

Vet inte vilken nivå du har tänkt dig.
Jag skulle försökt lägga så mycket logik på server sidan som möjligt och bara själva "utritningen" på klienten.
Typ Klockan/Historik etc på servern så att personer inte kan ställa om klockan lokalt och fuska.

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk
Skrivet av NoPaiN^:

Vet inte vilken nivå du har tänkt dig.
Jag skulle försökt lägga så mycket logik på server sidan som möjligt och bara själva "utritningen" på klienten.
Typ Klockan/Historik etc på servern så att personer inte kan ställa om klockan lokalt och fuska.

Det är helt rätt sätt att göra om det ska vara en ordentligt programmerad applikation för flera användare, men som ett första utvecklingsprojekt i VB är det ganska bra att börja med något som man ror i hamn och kan bygga vidare på om det fortfarande är intressant... Ibland fastnar man för att man gör saker mer komplicerade än vad det behöver vara. Jag har själv varit med om att utvecklare försöker lösa alla tänkbara problem utan att kontrollera om det faktiskt är ett möjligt senario de försöker lösa (och dessutom inte hittar en lösning för).

Visa signatur

Jag kan ha fel, men jag tror att jag har rätt.