login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[MySQL] Opslag data

Offline UpLink - 17/05/2014 00:40 (laatste wijziging 17/05/2014 00:40)
Avatar van UpLink... Beste SiMa's,

De titel is wat vaag, maar die zal iets duidelijker worden (hoop ik) na de uitleg van mijn "probleem".

Ik ben mijn hoofd namelijk al uren aan het breken over hoe ik data uit mijn tabel in MySQL ga opslagen zodat deze nadien gemakkelijk op te vragen is en weer te geven zonder meters php-code te moeten schrijven.

Mijn tabel ziet er ZO uit. De weggestreepte dingen zijn van weinig belang. De dingen die er wel toe doen zijn die met de pijlen.

Om kort even uit te leggen hoe die tabel werkt:

1. Dit zijn de jobcodes
2. Punten per jobcode
3. Hier worden de aantallen ingevuld die op die dag gedaan zijn.
4. Lijnnummers
5. Opmerkingen van die dag

Daarnaast hebben we nog een "hidden field" voor de datum.

Dus nu ik hoop dat je je ongeveer een beeld kan vormen van hoe ik mijn tabel in elkaar gestoken heb, komt dus de vraag: Hoe schrijf ik dit allemaal weg naar de database zonder al te complex te moeten werken, zowel bij het opslaan, aanpassen als weergave.

Misschien een kleine sidenote: Ik moet er nadien ook statistieken van kunnen maken.
Bijvoorbeeld: x-aantal van code 122, x-aantal van code 105. En dit moet ik per dag, week en maand kunnen doen.

Ik ben er al uren mijn kop over aan het breken.
Hopend dat iemand hier wel een antwoord op kan geven?


Alvast bedankt.

5 antwoorden

Gesponsorde links
Offline Thomas - 17/05/2014 01:48
Avatar van Thomas Moderator Wat zijn "lijnnummers"? De data die je daar invult ziet er nogal vaag uit.

Ook: dit is vast niet het hele plaatje? Dit vullen meerdere personen in voor zichzelf? Hebben deze dezelfde of andere jobcodes (en staan deze vast of selecteer je die uit een lijst)? Zijn de scores van een jobcode voor iedereen hetzelfde, of zijn deze persoonsgekoppeld? Misschien is het ook wel handig dat je van de breuken af geraakt. Hebben de punten een maximaal aantal decimalen (zodat je door vermenigvuldiging met 100 (ik zie maximaal 2 decimalen) van je decimalen af bent en enkel met integers werkt - lijkt me handiger in de opslag)?
De aantallen zijn gehele getallen?

Alvorens je een structuur bouwt zul je eerst precies moeten uitleggen wat alles betekent .
Offline UpLink - 17/05/2014 09:44
Avatar van UpLink ... Heel die tabel is voor iedereen hetzelfde.
Lijnnummers zijn de vaste telefoonnummers van klanten.
Die jobcodes zijn de ordertypes die techniekers meekrijgen.

Het is eigenlijk vrij simpel:

Technieker X heeft vandaag 3x 131, 2x 151 2x 105 en 4x 121 uitgevoerd. Het aantal word in kolom 3 ingevuld. Dan word er telkens kolom 1 x kolom 3 gedaan om zo het puntentotaal uit te rekenen voor die dag.
In kolom 4 worden dan ook de lijnnummers ingevuld van die orders (elke klant heeft een uniek lijnnummer, maar je kan die klant wel meermaals per maand/jaar tegenkomen.) Die scheid ik via een komma zodat ik die later gemakkelijk kan exploden om deze weer te geven.

Kan je je een beetje een beeld vormen van wat ik exact wil bereiken?
Offline Thomas - 17/05/2014 14:34
Avatar van Thomas Moderator Wat weergave-vragen voor de invuller (technieker):
- hoe is de score voor de technieker relevant? symboliseert dit tevens een soort prioriteit? is het doel van de technieker om elke dag/week een zo hoog mogelijke score te halen?
- hoe is het lijnnummner voor de technieker relevant?

als deze niet relevant zijn: weglaten uit dit invoerformulier.

Bij elk scherm zul je je af moeten vragen welke informatie getoond wordt aan welk type gebruiker. Toon daarbij enkel relevante informatie.

Je hebt het over orders, elke regel uit dit invulformulier is dus een deel van één of meerdere orderregels, mogelijk voor verschillende klanten (afgaande op de meerdere lijnnummers bij dezelfde jobcode in het screenshot)? Moet jouw functionaliteit ook rekening houden met het verdelen van order(regel)s naar zulke invullijsten of hoef je je daar helemaal niet mee bezig te houden?

De lijnnumer-informatie "bungelt" er nu een beetje aan, ergens tussen jobcodes en klanten, maar ik zie het verband niet echt.

Ook: veranderen deze lijsten over tijd, zo'n lijst lijkt mij dus een soort van blauwdruk van wat er geproduceerd moet worden? Verandert deze ook over tijd? Want dan moet je dus ook bijhouden van "dit hebben we voorgenomen om te produceren in deze periode", en dat kun je dan vervolgens uitzetten tegen "dit hebben we uiteindelijk geproduceerd" of iets dergelijks. En veranderen dan de punten wel (mogelijk andere prioriteit)?

Ik probeer nog steeds gevoel te krijgen voor wat het allemaal betekent.
Offline UpLink - 17/05/2014 16:05
Avatar van UpLink ... Kijk,

Die tabel is ons hulpmiddel om te berekenen hoeveel punten we op die dag behaald hebben.
Wij voeren x-aantal orders uit op een dag, naargelang hoeveel werk er is.
Die orders die wij krijgen, hebben elk een jobcode.
Aan de hand van die jobcode kunnen wij zien hoeveel punten we voor dat order krijgen.
We vullen dus elk order in op dat formulier aan de hand van de jobcodes om zo op het einde van de dag te kunnen zien hoeveel punten we in totaal hebben.
Er is inderdaad een minimum aantal punten nodig om rendabel te zijn, maar dat is weinig relevant op dit punt.

De lijst op zich veranderd niet als je naar de jobcodes kijkt.
De punten veranderen wel eens maar dat is op jaarbasis.

Wat de lijnnummers betreft:
We houden deze ook bij om bepaalde redenen (verder kan en mag ik daar geen info over geven).


Misschien kan je beter uitleggen wat je ervan begrepen hebt, want telekens opnieuw uitleggen met andere woorden gaat nog lang duren denk ik...


Offline Thomas - 17/05/2014 19:42
Avatar van Thomas Moderator Dit lijkt mij een van de vele manieren om een en ander simpel op te slaan.

Koppelingen met andere tabellen (gebruiker-administratie of order-administratie) zul je zelf moeten bepalen.

Ook hoe je de informatie in het formulier krijgt moet je zelf voor elkaar zien te krijgen, bovenstande tabellen zijn enkel voor vervolgens gestructureerd opslaan van gebruikersinvoer.

jobcodes
Voor het opslaan van de jobcodes (131, 155). Hierbij kun je nog kolommen toevoegen, maar lijnnummers horen hier niet echt in thuis, deze komen immers al ergens anders vandaan? Je zult deze tabel eenmalig moeten inrichten met alle mogelijke jobcodes (en scores voor dat jaar).

jobcode_scores
De scores voor een jobcode voor dat jaar. Bij voorkeur als integer. Vermenigvuldig deze met 100 of 1000 zodat je geen breuken hebt. En bij het maken van je optelsom voor een dag/maand/jaar deel je heeeeeeeeeelemaal aan het eind eenmalig door deze noemer. Vooral niet tussentijds afronden.

jobcode_entries
Wat je gebruikers invullen in het formulier.

entry_notes
Dit staat verder los van alle andere data en is voor je rapportages waarschijnlijk helemaal niet interessant.

Datums kun je in het DATE formaat opslaan (nauwkeurigheid van een dag).

Of dit voldoende is kan ik niet bepalen omdat ik alle informatie eromheen niet ken. Je zou met wat eenvoudige data-sets zelf kunnen kijken of je hiermee eenvoudig rapportages kunt samenstellen, en anders moet je het schema maar aanpassen.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.164s