Avatar billede nutten Nybegynder
20. april 2003 - 19:07 Der er 18 kommentarer og
1 løsning

Create table runtime

Sidder og stener over et projekt...

I forhold til god skik omkring databasedesign osv. ville jeg høre hvad I mener om følgende:

Der er flere forskellige bilermærker f.eks Opel, Fiat, Nissan osv.. Der skal selvfølgelig være mulighed for at oprette nye bilmærker og tænkte, det ville være smart at oprette en tabel for hvert bilmærke?

Dog vil det betyde, at der til tider skal oprettes en ny tabel i databasen og det er så her jeg stener over, hvorvidt det er god skik??

Det er jo ikke noget, der sker hver dag, men alligevel - set i forhold til en bedømmelse af en censor!
Avatar billede terry Ekspert
20. april 2003 - 19:24 #1
you do NOT create a new table for each "bilmærk" but a NEW record in the table
Avatar billede erikjacobsen Ekspert
20. april 2003 - 19:38 #2
Som censor, af og til, vil jeg falde over den slags. Og ja,
det trækker ned. Der er aldrig grund til at lave nye tabeller
på runtime. Du har aldrig set det i den litteratur, du har læst.
Det kommer aldrig ud af de metoder til modelbeskrivelse og
omformning, du har lært. Man gør det ikke.

Og med god grund, forøvrigt. Du kan ikke lave effektive
SQL-sætninger, hvis dine "ens" data er fordelt på mange
"ens" tabeller.

Skal du have et vink til strukturen, eller vil du prøve selv.

(Nemlig, terry!)
Avatar billede nutten Nybegynder
20. april 2003 - 19:51 #3
Det var nu også det, jeg selv var nået frem til - dog meget rart med andres meninger en gang imellem :o)

Jeg vil meget gerne have et vink - er på vej ud af døren.. Poster senere her..??
Avatar billede erikjacobsen Ekspert
20. april 2003 - 19:58 #4
Vink, ok. Én mulighed.

Tabel med bilmærker med hver deres unikke id (autonummerering fx)

1 Ford
2 SKoda
3 Ferrari

En tabel biler, starter også med eget autonum id, derefter id fra
bilmodel tabellen. Og så reg.nr

1 3 AA23232
2 3 JJ23232
3 2 FF33333

To Ferrarier og en Skoda...
Avatar billede nutten Nybegynder
21. april 2003 - 10:47 #5
Det ser jo fornuftigt ud...

Dog har jeg stadig ikke forstået, hvorfor man deler det op på denne måde??

Det er jo nøjagtig det samme, hvis man siger:

1 Ferrari AA23232
2 Ferrari JJ23232
3 Skoda  FF33333

eller hvad????
Avatar billede terry Ekspert
21. april 2003 - 11:00 #6
3 files less space than Ferrari and IF you spell FOrrari incorrectly then you only have one place to alter to Ferrari :o)
Avatar billede terry Ekspert
21. april 2003 - 11:02 #7
Avatar billede nutten Nybegynder
21. april 2003 - 11:02 #8
Ok, sounds reasonable..
Avatar billede nutten Nybegynder
21. april 2003 - 11:08 #9
Takker for linket
Avatar billede erikjacobsen Ekspert
21. april 2003 - 12:39 #10
Skal du have en oversigt over biltyper, til fx en
dropdownliste, er det bedre at hente dem fra én tabel,
end at pille dem ud af en tabel hvor de står mange
gange og du skal sortere dubletter fra.

En seperat tabel til bilmodeller gør det også muligt
at have navnet på en bilmodel, hvor man endnu ikke har
registreret en bil.

Og så kan man flere oplysninger om bilmodellen (fabrikationsland,
værdi som statussymbol, ...), som ikke er relevante at
registrere for den enkelte bil.

Derfor .... bl.a. .... ;)
Avatar billede nutten Nybegynder
21. april 2003 - 14:42 #11
erikjacobsen >> Jeg kunne vel ikke få dig til at slå vejen forbi denne adresse: http://nutten.kollegiegaarden.dk ? Har prøvet at stille det op med ER, men har lidt problemer omkring spørgsmålsdelen - det er den jeg kæmper med og brugte bilerne som eksempel.. Har efterhånden brugt mange timer på dette :(
Avatar billede erikjacobsen Ekspert
21. april 2003 - 14:51 #12
Det er da godt du bruger tid på det.

Men jeg kan ikke gøre noget ved dit diagram - det kræver en nærmere
forklaring om hvad der egentlig foregår, og hvad forudsætningerne er.

Det var faktisk godt du kom med eksemplet med bilerne ...
Avatar billede nutten Nybegynder
21. april 2003 - 15:02 #13
Det virkede ikke så kompliceret umiddelbart - og det kan da være jeg gør det mere besværligt end det er..

For hvert registreret fag i TbFAId er der en mængde spørgsmål i TbSporgsmaal med en given type fra TbSporgsmaalForm

Det skal være muligt at låse antallet af svarmuligheder for hvert fag, dette gøres i reltb_form_Fag..

I TbSvarMulighederne gemmes spørgsmålet's Id samt svarmulighederne til samme..

Jeg synes bare det virker forkert?!?!
Avatar billede erikjacobsen Ekspert
21. april 2003 - 15:06 #14
Din verbale beskrivelse her lyder da ok.
Avatar billede nutten Nybegynder
21. april 2003 - 15:24 #15
Det er nok bare mig, der gør det sværere end det er :o)

Mange tak for hjælpen - nu lader jeg designet ligge...
Avatar billede erikjacobsen Ekspert
21. april 2003 - 15:30 #16
Ja, jeg kender det godt ... man opdager, at der skal lige
være en tabel mere, og lige en mere, og ...

Det er et sundt tegn hvis man fx har ca. 1½ gange så
mange tabeller, som man umiddelbart troede man skulle bruge.
Avatar billede nutten Nybegynder
21. april 2003 - 15:33 #17
Det har jeg efterhånden også :o)
Avatar billede nutten Nybegynder
21. april 2003 - 16:57 #18
Lige en ting, jeg har luret lidt på:

1 Ford
2 Skoda
3 Ferrari
med autonummerering

1 3 AA23232
2 3 JJ23232
3 2 FF33333
med autonummerering

Hvad type skal kolonne 2 i den nederste tabel så have??? Den er auto i den første, men hvad med den anden - er det nok med INTEGER???
Avatar billede erikjacobsen Ekspert
21. april 2003 - 18:21 #19
Ja, det skal være en INT - samme type som i den øverste men ikke
autonum. Du kan erklære den som FOREIGN KEY
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
Computerworld tilbyder specialiserede kurser i database-management

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