Avatar billede oddi Nybegynder
15. januar 2011 - 12:33 Der er 4 kommentarer og
1 løsning

Hjælp til DB design

Hej eksperter.

Jeg har en del erfaring med programmering, men har ikke indtil videre ikke haft brug for at lave en DB.

Jeg har valgt at bruge SQLite til mit projekt. Mit program skal holde styr på tal, en masse tal.

Jeg havde tænkt på at lave en tabel med dato som PK og så 5-10 tal (int i 5-10 koloner)

Programmet skal så holde styr på hvor mange gange fx tallet 5 er forekommet. Er det så smartest at lade programmet opdatere en tabel som indeholder en tæller af hvert tal, eller lave en trigger som holder hånd om opdateringen af tællerene ?

Eller en anden løsning hvor man har en select som finder finder alle forekomster af de tal som databasen indeholder ?

Eller er der en tredje løsning ?

Mvh
oddi
Avatar billede arne_v Ekspert
15. januar 2011 - 15:41 #1
Mit forslag vil være ingen redundante data men tæl op når antal skal bruges.

SELECT COUNT(*) FROM tbl WHERE f1=5
UNION
SELECT COUNT(*) FROM tbl WHERE f2=5
UNION
...
UNION
SELECT COUNT(*) FROM tbl WHERE fn=5
Avatar billede oddi Nybegynder
15. januar 2011 - 17:35 #2
Ok mange tak for dit svar arne_v, smid et svar
Avatar billede arne_v Ekspert
15. januar 2011 - 17:42 #3
Alternativet var at lave en anden tabelstruktur med kun 3 felter:

id
n (som svarer til kolonne nummer)
val

og så nøjes med en:

SELECT COUNT(*) FROM tbl WHERE val=5
Avatar billede arne_v Ekspert
15. januar 2011 - 17:42 #4
og et svar
Avatar billede oddi Nybegynder
15. januar 2011 - 17:50 #5
Tak for forslaget om ny tabelstruktur, jeg vil lave et par test databaser og se hvilken giver det bedste resultat.
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

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