WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Bästa sätt att lagra formulärinformation? (https://www.wn.se/forum/showthread.php?t=21285)

Micke_ 2007-05-16 09:50

Jag gör en rapportfunktion i PHP och MySQL där man fyller i en rapport - ett frågeformulär med en punktlista - som man sedan ska se statistik på och kunna jämföra med andra rapporter.

Min fråga är:
Hur lagrar man bäst resultaten i databasen?

Låt oss säga att jag har en tabell som heter rapporter. Jag har då funderat ut tre scenarior:
#1. jag kan spara resultaten i en och samma kolumn, vilket kanske blir knepigt när men sedan ska försöka plocka ut informationen.

#2. Jag kan också välja att lägga varje svar i en egen kolumn. Men då måste jag i förväg bestämma vilka frågor som ska vara med i formuläret - med andra ord så förlorar jag lite i skalbarheten.

#3. Ett tredje alternativ skulle vara att spara varje varje svar i en egen rad tillsammans med rapportID, datum och användarID till exempel. Nackdelen där är väl att det sparas väldigt mycket data i onödan och det görs väldigt många SQL anrop mot databasen varje gång man ska spara en rapport.

Tankar och tips kring detta?

melin 2007-05-16 12:25

spara som ett csv fält.. dvs värde,värde,värde,värde - så gör jag när jag behöver spara ett okänt antal ID-nummer på något sätt

Micke_ 2007-05-16 15:04

Citat:

Originally posted by melin@May 16 2007, 12:25
spara som ett csv fält.. dvs värde,värde,värde,värde - så gör jag när jag behöver spara ett okänt antal ID-nummer på något sätt

D.v.s. som alternativ nr. 2?

melin 2007-05-16 15:14

nej

alla ID värden i samma kolumn.. nu t.ex har jag byggt en sida åt min far där hans kunder väljer en hög med kategorier

de kategoriID'n lagrar jag i ett fält som heter t.ex "categories" och i den då ligger t.ex "47,15,84,12,97" på en och en annan kanske har "13,67" osv

Micke_ 2007-05-16 17:12

Citat:

Originally posted by melin@May 16 2007, 15:14
nej
alla ID värden i samma kolumn.. nu t.ex har jag byggt en sida åt min far där hans kunder väljer en hög med kategorier
de kategoriIDn lagrar jag i ett fält som heter t.ex categories och i den då ligger t.ex 47,15,84,12,97 på en och en annan kanske har 13,67 osv

Alltså som alternativ nr. 1, att jag sparar svaren kommaseparerade i en och samma post?

melin 2007-05-16 18:14

japp - så gör iaf jag

vco-systems 2007-05-16 21:44

Citat:

#3. Ett tredje alternativ skulle vara att spara varje varje svar i en egen rad tillsammans med rapportID, datum och användarID till exempel. Nackdelen där är väl att det sparas väldigt mycket data i onödan och det görs väldigt många SQL anrop mot databasen varje gång man ska spara en rapport.
Jag skulle ha kört på alternativ 3 och lägga till en kolumn med "FrågeID" blir betydligt enklare att behandla senare om man till exempel vill plocka fram alla svar på fråga 5.

Micke_ 2007-05-17 09:25

Citat:

Originally posted by vco-systems@May 16 2007, 21:44
Jag skulle ha kört på alternativ 3 och lägga till en kolumn med "FrågeID" blir betydligt enklare att behandla senare om man till exempel vill plocka fram alla svar på fråga 5.
Det har du en poäng i. Nackdelen är ju som sagt att det sparas en massa data i onödan + att man måste köra SQL INSERT för varje fråga (om jag har förstått saken rätt)

DeSoto 2007-05-17 10:27

Trean helt klart. Att oroa dig för antalet databasanrop redan nu är för tidig optimering. Med trean blir ditt system mycket med strukturerat.

Emj 2007-05-30 14:09

Citat:

Originally posted by melin@May 16 2007, 15:14
nej

alla ID värden i samma kolumn.. nu t.ex har jag byggt en sida åt min far där hans kunder väljer en hög med kategorier

de kategoriID'n lagrar jag i ett fält som heter t.ex "categories" och i den då ligger t.ex "47,15,84,12,97" på en och en annan kanske har "13,67" osv

Då bryer du ju mot första normalformen, vilket kanske inte är jättebra.


Alla tider är GMT +2. Klockan är nu 21:42.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson