Toon posts:

[DATABASE] Data plat weergeven

Pagina: 1
Acties:
  • 501 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo allen,

Ik ben op zoek naar een manier om een lijst met antwoorden op vragen goed weer te geven.

Ik heb een database met een aantal tabellen: vragenlijsten, gebruikers en antwoorden.

Elke tabel spreekt denk ik wel voor zich, ik wil van elke gebruiker een lijst maken met welk antwoord hij hefet gegeven op een bepaalde vraag:

Gebruiker | Vraag 1a | Vraag 1b | Vraag1c | Vraag 2a | vraag 2b | Vraag 3a etc.
Jantje | | x | | x | | x

Hoe kan ik het beste zo'n lijst genereren uit een dergelijke (genormaliseerde) database? Heb ik hier een aparte tool voor nodig? Let op, het aantal kolommen zou wel eens boven de 500 kunnen komen. Ik ga SPSS gebruiken om de data te analysern.... alvast bedankt.

Verwijderd

Topicstarter
Ik zie dat de tabjes bij de 2e regl tussen die 'pipes' zijn gevallen, excuses.

  • orca
  • Registratie: November 2001
  • Laatst online: 01-08-2025

orca

Zwem goed, Broeder.....

het is een basis taak van database user interfaces om dit soort tabellen te generen.

misschien helpt het als je verteld in welke database de gegevens nu staan?

Ask not what your computer can do for you ! Ask what you can do for your computer ! ! !


Verwijderd

Zou je eens niet beginnen met een goed datamodel? Dit trekt eerlijk gezegd niet op zoveel.

Maak de tabelle

-vraag
-mogelijkeantwoord
-gegevenantwoord
-gebruiker

Dan ben je toch al een beetje beter bezig, zeker op vlak van normaliseren.


edit:

Ik lees nu pas wat er onder die tabellen staat
[quote]
(genormaliseerde)
Sorry maar dit is helemaal niet genormaliseerd. Als je zo tot wel 500 kolommen wilt gaan, gaat het op niet veel trekken. Ik zou echt je datamodel eerst sterk verbeteren voor je nog maar iets verder doet!
[/quote]

[ Voor 40% gewijzigd door Verwijderd op 03-06-2005 15:20 ]


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 10:47
Dit is precies de reden waarom ik onderzoeksdata altijd gedenormaliseerd opsla. Doorgaans moet elke respondent immers alle vragen invullen (en heb je zelf alleen de platte data nodig), Maar goed dat is mosterd na de maaltijd.

Maar hoe zien de tabellen er precies uit? Is de tabel antwoorden ongeveer zo:
gebruikersid | vraagid | antwoord
---------------------------------
    (FK)     |  (FK)   |  

Regeren is vooruitschuiven


Verwijderd

Topicstarter
misschien even belangrijk om te vermelden: ik heb geen rechten tot het wijzigen van het datamodel. Ik weet dat er haken en ogen aan het huidige model zitten, maar hier is helaas niets aan te doen.
het is een basis taak van database user interfaces om dit soort tabellen te generen.

misschien helpt het als je verteld in welke database de gegevens nu staan?
Ik begrijp je antwoord/vraag niet helemaal, maar ik zal er antwoord op proberen te geven: de data staat nu in deze database.

Ik heb al zitten denken om de data te migreren naar mijn eigen model, ik vraag me echter af of ik hiermee bovengenoemd probleem makkelijker oplos. Ik vraag me af of ik het met alleen SQL af kan, misschien wordt het toch een TOOL schrijven die het vuile werkt opknapt.

  • Sick Nick
  • Registratie: Februari 2001
  • Laatst online: 11:26

Sick Nick

Drop the top!

de opmaak van de database boeit verder niet zo heel veel aangezien je met SPSS prima zulke datasets kunt verwerken. Per vraag krijg je een aparte variabele in spss (kolom), per user (ook een var) krijg je een mooie rij met z'n antwoorden :)

Verwijderd

Topicstarter
Dit is precies de reden waarom ik onderzoeksdata altijd gedenormaliseerd opsla. Doorgaans moet elke respondent immers alle vragen invullen (en heb je zelf alleen de platte data nodig), Maar goed dat is mosterd na de maaltijd.

Maar hoe zien de tabellen er precies uit? Is de tabel antwoorden ongeveer zo:

gebruikersid | vraagid | antwoord
---------------------------------
(FK) | (FK) |
Ongeveer zo ja. Ik denk dat iedereen zich wel zo'n beetje kan voorstellen hoe het model er uit ziet. Belangrijk voor mij is hoe ik dus data horizontaal weergeef (superplat) voor iedere gebruiker. Het kan dus ook voorkomen dat gebruikers een bepaalde vragenlijst niet ingevuld hebben. Dan zullen de kolommen gewoon leegblijven, of zal er een '-' ingezet kunnen worden oid. Dat is nu niet van belang.

Verwijderd

Topicstarter
de opmaak van de database boeit verder niet zo heel veel aangezien je met SPSS prima zulke datasets kunt verwerken. Per vraag krijg je een aparte variabele in spss (kolom), per user (ook een var) krijg je een mooie rij met z'n antwoorden :)
Kan SPSS iets dergelijks genereren uit een lijst met data? Dus:

Gebruiker | Vraag | Antwoord
Gebruiker | Vraag | Antwoord
Gebruiker | Vraag | Antwoord
etc.

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 10:47
Aangezien je dit waarschijnlijk maar 1 keer hoeft te doen zou ik niet te lang nadenken over een hele nette SQL oplossing. Als je een scriptingtaal beheerst ben je veel sneller klaar met een simpel scriptje om de data "plat te slaan". Met PHP is het in elk geval vrij eenvoudig om een SPSS script te genereren dat je data importeert en ook gelijk labels en missing values definieert..

Regeren is vooruitschuiven


  • Sick Nick
  • Registratie: Februari 2001
  • Laatst online: 11:26

Sick Nick

Drop the top!

Ik heb net een opdracht gedaan waarbij we met zoiets moesten werken. Daar zag het er zo uit:

Afbeeldingslocatie: http://members.chello.nl/awroos/spss1.gif
De variabelen

Afbeeldingslocatie: http://members.chello.nl/awroos/spss2.gif
De data zelf

Dat kan spss ongetwijfeld uit een komma gescheiden ascii file lezen, de database kan vast wel ge-exporteerd worden naar zoiets?

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 05-05 21:36
Zoek eens naar "Pivot tabel". Volgens mij kan je het gewenste resultaat in ongeveer 6 muisklikken hebben binnen excel vanuit je sql-database.

Verwijderd

Sorry,

Wist niet wat SPSS is. Blijkbaar heeft het met de statistiek te maken. Ik leidde uit uw eerste zin af dat het ging om het weergeven van data voor de userinterface. Zelf ben ik bezig met een klein kwissysteem, daarom misschien dat ik in die lijn dacht.

Van statistiek ken ik de ballen, dus zal vanaf nu mijn mond hier houden 8)7

  • orca
  • Registratie: November 2001
  • Laatst online: 01-08-2025

orca

Zwem goed, Broeder.....

kijk maar eens in je beginnersboeken SQL, met een goed geschreven select statement kan je dit allemaal in één keer regelen..

zonder details over de tabellen kan niemand je helpen met een voorbeeld statement.

Ask not what your computer can do for you ! Ask what you can do for your computer ! ! !


Verwijderd

Topicstarter
kijk maar eens in je beginnersboeken SQL, met een goed geschreven select statement kan je dit allemaal in één keer regelen..

zonder details over de tabellen kan niemand je helpen met een voorbeeld statement.
Het probleem zit 'm in het uitlezen 'in de breedte', ik kan onmogelijk in SQL dynamisch het aantal kolommen bepalen wat hij teruggeeft aan de hand van het aantal totaalvragen, waarbij er ook nog eens in een bepaalde kolom een waarde gezet moet worden.

Even voor de duidelijkheid dan de tabellen:

[Vragenlijst]
vragenlijst_id (PK)
naam (bijv. Vragenlijst over rijgedrag van nederlanders)

[Uitslaglijst]
uitslaglijst_id
vragenlijst_id (FK)
gebruiker_id (FK)

[Gebruiker]
gebruiker_id
naam

[UitslaglijstAntwoorden]
uitslaglijst_id
vraag
antwoordmogelijkheid1
antwoordmogelijkheid2
antwoordmogelijkheid3 .. 15 ( IK weet het, slecht ontwerp, niet mijn keuze)
gegevenantwoord(en) (COMMA SEPARATED)
vraagtype (Er zijn ook nog verschillende vragen met verschillende interpretaties van het gegevenantwoord veld)

Bovenstaande tabellen bevatten in ieder geval alle data, alleen nu nog het juist uitlezen.

  • BertS
  • Registratie: September 2004
  • Laatst online: 13-02 08:33
Twee vragen waar 'we' graag een antwoord op willen:
1. In welke database-engine staat het (MS Access, MS SQL, MySQL, etc..) ?
2. Wat is de exacte indeling van de tabellen (dus tabelnaam/veldnamen) waar de data in staat?

(en kijk nog even naar jvdmeer in "[DATABASE] Data plat weergeven")
Pagina: 1