Otto skrev:
> #1) kan man 'styre' at en bruger ikke vælger mere end f.eks
> max 3 - af feks 10 mulige dataværdier i dropdownlisten?
Ja. På serversiden - hvor asp-koden kører - kan du tjekke antallet
af valgte elementer ved at splitte den streng du får ind (jeg kan
på stående fod ikke huske om man modtager en simpel kommasepareret
streng eller om det er en form for samling, men i begge tilfælde
kan man teste hvor mange elementer der er modtaget - sørg blot for
at de submittede værdier ikke indeholder kommaer).
> #2) Værdierne indsættes som kommaseparerede data i
> samme felt i databasen.
Flerværdifelter er noget snavs - som dit tillægsspørgsmål ganske
nydeligt demonstrerer. I databasesammenhæng er grundreglen at man
gemmer én værdi i et felt (eller slet ingen). Hvis du har flere
værdier, skal du oprette en relation så du kan gemme værdierne som
separate poster.
Eksempel:
I en persondatabase skal man registrere navn, adresse og hobbyer.
Følgende personer skal lægges ind:
- Hans Jensen, Rosevej 42, skak, bridge og ludo
- Ida Hansen, Skovvejen 17, ridning
- Brian Larsen, Svinget 2, ludo og frimærker
Implementering 1 (dårlig):
tbl
Navn, Adresse, Hobby
"Hans Jensen", "Rosevej 42", "skak, bridge, ludo"
"Ida Hansen", "Skovvejen 17", "ridning"
"Brian Larsen", "Svinget 2", "ludo, frimærker"
Implementering 2 (dårlig):
Navn, Adresse, Hobby1, Hobby2, Hobby3
"Hans Jensen", "Rosevej 42", "skak", "bridge", "ludo"
"Ida Hansen", "Skovvejen 17", "ridning", "", ""
"Brian Larsen", "Svinget 2", "ludo", "frimærker", ""
Implementering 3 (korrekt)
tblNavn:
Navn, Adresse
"Hans Jensen", "Rosevej 42"
"Ida Hansen", "Skovvejen 17"
"Brian Larsen", "Svinget 2"
tblNavnHobby
"Hans Jensen", "skak"
"Hans Jensen", "skak"
"Hans Jensen", "skak"
"Ida Hansen", "ridning"
"Brian Larsen", "ludo"
"Brian Larsen", "frimærker"
Problemet med 1 er at det er svært at søge og sortere efter folk
der har en bestemt hobby. Det samme problem gælder for 2, fordi man
nu ikke ved om der skal søges i 1., 2. eller 3. hobby-felt.
Opdelingen i to tabeller gør det muligt at udvælge præcis de
personer man vil have, uden at have dobbeltregistreringer.
I praksis vil man ofte have et id-nummer til at identificere
personer og hobbyer - så vil databasen være mindre følsom over for
ændringer i navne eller ændrede oplysninger til en hobby. Men
princippet er det samme - hvis der skal regisreres flerværdier,
skal der oprettes en tabel til det - og hverken lægges flere felter
eller kommaseparerede værdier ind i databasen.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html