Avatar billede Calle5463 Forsker
26. april 2012 - 22:58 Der er 14 kommentarer og
1 løsning

Hvordan gemmer variablet antal felter

Håber det er den rigtige kategori - men ellers får jeg det jo nok at vide - og håber i øvrigt at få noget inspiration/hjælp til at komme videre:

Jeg roder lidt med hvordan jeg kan gemme pt. ca. 90 felter fra en formular (spørgeskema) i en mysql-tabel og tage højde for senere ændringer. Dvs at der kan komme flere, færre og andre spørgsmål, som skal gemmes med et sagsnr som key. Det er altså ikke nødvendigvis de samme spørgsmål der skal besvares for sager i dag og sager i fremtiden. tænker noget med et array hvor man gemmer de aktuelle spørgsmål sammen med svarerne. De enkelte sager skal ikke sammenlignes, så det gør ikke noget at der kommer til at ligge forskellige spørgsmål/svar på samme array-adresse (hedder det sådan?).

Spørgsmålene ændre sig ikke særligt ofte - måske årligt - og potentielt besvares de ca. 25.000 gange om året.
26. april 2012 - 23:55 #1
Hvis der er, måske, et par hundrede forskellige spørgsmål hvoraf cirka 90 besvares for en sag, så kunne man måske bruge en database struktur med tre tabeller, (1) spørgsmål, der for hvert spørgsmål indeholder en id og spørgsmålets tekst, (2) sag, der for hvert sag indeholder sagsnummer plus måske yderligere data såsom sagens navn, type, dato, (3) sags_spørgsmål_svar med felterne id, sag_id, sp_id, svar.

Et måske over simplificeret eksempel:

tabellen spørgsmål indeholder tre spørgsmål:

spørgsmål
id tekst
1  'din alder'
2  'fødselsdag'
3  'køn'

der er to sager hvoraf første sag bruger spørgsmål 1 og 3 og anden sag spørgsmål 2 og 3

sag
id navn
1  jensen's sag
2  sag og behag

sags_spørgsmål_svar
id sag_id sp_id svar
1  1      1    '25 år'
2  1      3    'nogenlunde'
3  2      2    '13-4-1944'
4  2      3    'går for at være køn'

Så kan du indrette spørgeskemaet (jeg går ud fra, at det er en html form) således at der for hvert spørgsmål er en <input type="hidden"> der indeholder spørgsmålets id.  Når så brugeren sender formen af gemmer du i sags_spørgsmål_svar tabellen, for hvert spørgsmål i den pågældende sag, sagens id, spørgsmåælets id, og svarets ordlyd.
Avatar billede Calle5463 Forsker
27. april 2012 - 00:40 #2
- det er vist noget i den stil jeg forestiller mig.

Lidt uddybende:

Sagstabellen (og en kundetabel) eksistere allerede, så derfor skal jeg bare registrere med sagsnr. I sagstabellen er allerede registreret "grunddata" for sagen (opgaver (1,2,3), adresse o.s.v)

Der skal besvares spørgsmål efter hvilke af tre opgaver der skal udføres - enten opgave 1+2 eller 3 eller 1+2+3.

Spørgsmålene er i stil med "Fungere maskinen?" (ja/nej/ved ikke), "hvis nej, hvad er der galt?"

Måske man kan danne formularen ud fra spørgsmåls-tabellen med en løkke? Dvs. jeg måske skal lave en formular til vedligehold af spørgsmål (grp., løbenr, spørgsmål, svarmuligheder, ekstraspørgsmål afhængigt af svar), men så skal den vist også lave noget javascript for at validere svar. Hmmm!
Avatar billede ohhelpme Nybegynder
27. april 2012 - 01:10 #3
smid alt lortet ind i det felt i databasen, Husk at adskille skidtet med et "special tegn" eks: |

derefter lav en explode på skidtet..

husk at lav et nr. to felt, så du kan se hvems der er hvems :P
Avatar billede ohhelpme Nybegynder
27. april 2012 - 01:11 #4
der skal self stå et og ikke det
27. april 2012 - 05:38 #5
Jeg forstod problemstillingen som gående ud på hvordan du skulle gemme de svar brugerne gav på formularens spørgsmål, hvor formålet var senere at kunne trække brugernes svar ud. Den forståelse svarede jeg ud fra. 

Nu jeg nærlæser, og efter din uddybning, kan jeg se, at hvert spørgsmål kan have forskellige svarmuligheder, såsom spørgsmålet "Virker maskinen?" med svarmulighederne "Ja", "Nej", og "ved ikke", og at formålet er at danne spørgeskemaer.  Jeg må nu bede om yderligere uddybning:

(1) Er alle spørgsmål 'lukkede,' altså med bestemte svarmuligheder, eller er der også  'åbne' spørgsmål, hvor brugeren selv må komme med et svar?  Et spørgsmål som "hvis nej, hvad er der galt?" ser ud som et åbent spørgsmål, med mindre der er givet bestemte svarmuligheder såsom "Maskinen kan ikke køre forlæns", "Maskinen kan ikke køre baglæns", "Maskinen kan hverken køre forlæns eller baglæns", og "Maskinen kører forlæns og baglæns på samme tid".

(2) Hvis alle spørgsmål er lukkede, har de så alle et bestemt antal, for eksempel 3, svarmuligheder, eller kan et spørgsmål have to muligheder (såsom "Ja" og "nej") eller kan antallet variere?

(3) Siger du, at der er tre forskellige opgaver, og for hver opgave er der et sæt spørgsmål, for eksempel opgave 1 har spørgsmål numre 1 til 30, opgave 2 spørgsmål 31 til 65, og opgave 3 spørgsmål 66 til 92?  Og hver sag drejer sig om en enkelt eller en kombination af de tre opgaver?  For eksempel at sag nummer 3417 er for opgave 2 alene og skal bruge et spørgeskema med spørgsmålene 31 til 65, sag nummer 7255 er for opgave 1 og 3 og skal bruge spørgsmålene 1 til 30 plus 66 til 92, o.s.v.

(4) Og siger du videre, at spørgsmålene og deres sammenstilling per opgave forbliver konstant for eksempel et års tid, hvorefter du kan foretage ændringer, for eksempel at du ændrer ordlyd eller svarmuligheder for spørgsmål 25, dropper spørgsmål 72, og tilføjer tre nye spørgsmål med svarmuligheder til opgave 2?
27. april 2012 - 05:39 #6
...og en ting mere, skal du også gemme de svar brugerne gav for den enkelte sag?
Avatar billede Calle5463 Forsker
27. april 2012 - 09:32 #7
#5+#6, Chr: Gode spørgsmål

Opgave 1
Lige nu kun et spørgsmål med "lukket" svarmulighed "ja/nej"

Opgave 2
Pt 1 åbent spørgsmål "Årgang" (det kan jo så laves lukket men ikke særligt smart med en liste fra 1700-20nn) og 44 lukkede spørgsmål (ja/nej/ved ikke) og afhængig af det lukkede svar skal der uddybes "åbent".

Opgave 3
Kendes pt ikke, men forventes at ligne opgave 2

Et alternativ til at lave det hele i en database, er det at lave et redigerbart (pdf-)dokument, som kunden kan vælge at besvare på skærmen eller udskrive og besvare manuelt. Det sidste må jeg så indscanne. Efter besvarelsen gemmes hele dokumentet som f.eks "Oplysninger-vedr-$sagnr.pdf".

Tillægsspørgsmål: Hvordan får jeg data signeret med kundens NemId?
Avatar billede Calle5463 Forsker
27. april 2012 - 09:33 #8
#3, du mener noget i retning af:

kol 1, Sagnr

kol 2, opgavekombination

kol 3, skema

kol 4, signatur (eller kan den indgå i kol 2?)



Skal jeg så ikke først lave en tilsvarende tabel der indeholder tomme skemaer, og hvor jeg kan lave en statuskode så jeg kan bestemme hvilket skema der er gældende?
Avatar billede Calle5463 Forsker
27. april 2012 - 09:35 #9
#6 - ja, svarerne skal gemems som dokumentation, og de skal ovenikøbet varet signeret (NemId)
27. april 2012 - 14:03 #10
Jeg er ved at tabe overblikket over spørgsmålet.  Det drejer sig om (tror jeg) at folk skal besvare spørgsmål i forbindelse med sager.  Men hvad skal der ske, når spørgsmålene er besvarede?  Hvad er behovet?

Er de efterfølgende handlinger så få og simple, at det er tilstrækkeligt at have besvarelserne i 'hard copy'i en sagsmappe i et bestemt kontor som man så åbner og læser når der er behov derfor?  I så fald er der naturligvis ingen grund til at involvere en database.  Tre (redigerbare) word eller pdf spørgeskemaer, et for hver af de tre opgaver, som brugeren kan udfylde on-line og derefter printe ud og underskriver eller som brugeren kan udfylde og underskrive manuelt og som derefter gemmes i sagsmappen kunne i så fald være tilstrækkeligt, som du antyder i #7.  I så fald har jeg ikke noget at tilføje.

Eller er det således, at besvarelserne må være tilgængelige forskellige steder og på forskellige tidspunkter, så man ikke kan være afhængig af en fysisk sagsmappe man skal hente på et kontor indenfor åbningstiderne, og at brugerne befinder sig forskellige steder, så det vil være upraktisk at skulle udveksle fysiske dokumenter, og kan der være brug for automatisk behandling af svarene, for eksempel statistikker over, hvor ofte maskinerne ikke virker, så man ikke kan være afhængige af at skulle bruge mennesker til at læse de besvarede spørgeskemaer?  I så fald vil jeg meget anbefale at gøre brug af elektronisk processing med html formularer og at bevare besvarelserne i en database.  I så fald kan jeg sandsynligvis være med til at foreslå løsninger. 

Kan jeg bede dig entydigt at bestemme hvad nu behovet er før jeg går videre?  Og hvis behovet er for elektronisk processing, hvordan kender du så en brugers NemId?  Skal brugeren logge ind med brugernavn og adgangskode for at få adgang til at besvare spørgsmålene?
Avatar billede Calle5463 Forsker
27. april 2012 - 14:47 #11
#10 - jeg skal prøve at opsummere:

1) Mit spørgsmål går dybest set på at finde ud af, om det "bare" er en løsning med nogle redigerbare word/pdf eller en html-formular/mysql-db og om det i det hele taget er noget jeg selv kan lave.

2) Løsningen skal tilgodese, at jeg er "papirløs". Dvs. at papirdokumenter pt. indscannes og gemmes i en sagsmappe (i skyen). Men målet er at blive helt fri for scanningsproceduren.

3) Det udfyldte spørgeskema skal ved en eventuel tvist kunne bruges som dokumentation for kundens afgivne oplysninger - det skal derfor være signeret (NemId!) og gemmes sikkert i et antal år. Det stiller nogen krav til at data ikke kan ændres efter signering. Data skal måske ovenikøbet gemmes hos en trediepart som står inde for ægtheden.

4) Det skal være forholdsvis enkelt at redigere spørgeskemaerne, når kravene til spørgsmålene opdateres af myndighederne (3 forskellige!)

5) De afgivne oplysninger skal være nemt tilgængelige for mig selv og min medarbejder uden at være afhængig af sted (skyen) og må ikke kunne redigeres (men gerne kommenteres) efter signering af kunden.

6) Hvordan får jeg adgang til at kunden kan signere med NemId?
27. april 2012 - 15:44 #12
Nej, jeg tror problemstillingen ligger udenfor min ekspertise.  Hvis det blot drejede sig om at gemme spørgsmål i databasen, trække disse spørgsmål ud for at generere elektroniske spørgeskemaer, gemme svarene fra databasen, o.s.v., så kunne jeg være med, men din problemstilling går videre end det.  Jeg stopper her.  Jeg håber for dig på kommentarer fra mere vidende medlemmer.
Avatar billede Calle5463 Forsker
27. april 2012 - 15:49 #13
- bare ok Christian, du har under alle omstændigheder været medvirkende til at skærpe mine tanker.
Avatar billede Calle5463 Forsker
28. april 2012 - 11:03 #14
- det er vel til at have med at gøre, at lave en lidt low-tech løsning (version 1), så lige nu er det min konklusion af ovenstående - Christian, smid et svar, du var den mest aktive.

Version 1:
a) html-forms der gemmer data i min mysqlDB indtil kunden har svaret på alle spørgsmål og trykker "godkendt" (så kunden kan gå til-og-fra spørgeskemaet)

b) når kunden trykker "godkendt", laves en udskriftvenlig fil af hvert skema, som sendes til respektive sagsbehandler (og kopi lægges i sagsmappe - unsigned_sagnr_opgavenr).

c) sagsbehandlerne udskriver skemaer [1] og medbringer til kunden for underskrift, hvorefter skemaer indscannes og gemmes i sagsmappe (signed_sagnr_opgavenr).

[1] Jeg tror hvert opgaveskema skal underskrives for sig.

[a][b] Jeg kan et stykke af vejen lave det selv, men har et par detajludfordringer, fx. - hvordan gemmer man værdier for radiobuttons og checkboxe i DB og viser dem igen i formularen - det må vi tage i en anden tråd

Version 2
Kunne så måske være, at skemaer ved kundens tryk på "godkendt" kræver kundens NemId signatur, lægger skemaer i sagsmappe og via email advisere respektive sagsbehandlere om nye skemaer.
28. april 2012 - 12:02 #15
Ok, svar fra mig.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Politiets Efterretningstjeneste

Cloud Engineers til PET's IT-sektor

Metroselskabet og Hovedstadens Letbane

Cyber Security Konsulent

Udviklings- og Forenklingsstyrelsen

Rådgivende it-arkitekter med stærke samarbejdsevner