Avatar billede avminarm Juniormester
23. september 2002 - 09:54 Der er 9 kommentarer og
1 løsning

en eller flere tabeller

Til orientering er jeg newbie i MySQL

Hvis man mu vil lave en DB over en masse forskelligt f.eks: fornavn, efternavn, højde, vægt, nummer, antal_scoringer, referat mv.

1) er det bedst at have en tabel eller flere tabeller i en DB

2) er det nemmere at have en tabel eller flere, når man skal indsætte data og hive data ud ?

3) kan man bruge en dato+kl funktion som man kna sortere efter når man f.eks vil være sikker på at det nyeste altid hentes først- og hvordan?
Avatar billede ghazaleh Nybegynder
23. september 2002 - 10:00 #1
1) Hvis det er muligt at hente alle dine oplysninger på en person, så skal du kun oprette en tabel med de forskellige personer, men hvis nu at en person fx. spillede nogle kampe og der skulle gemmes oplysninger for en kamp, så skal du også lave en tabel for kampe.

2) Det er nemmere kun at have en tabel, men nogle gange er det nødvendigt med flere. Det vil man også finde ud af når man sidder med den specifikke dataindsamling.

3) Du kan sagtens sortere på dato + klokken, hvis du bruger php så kan du bruge date() funktionen, den kan du læse om på www.php.net og du skal have en række i din tabel, der indeholder tidspunkterne. Og når du så henter fra tabellen, så skriver du: "SELECT * FROM person ORDER BY tidspunkt"
Avatar billede ghazaleh Nybegynder
23. september 2002 - 10:10 #2
jeg kommer lige til at tænke på at hvis du skal sortere noget efter tidspunkt, så må det være en nyhedstabel eller lignende ikke? Den skal du nok ikke have i samme tabel som "person". men i en tabel for sig, der indeholder alt vedrørende nyheder (overskrift, nyhed, indsataf, o.s.v.)
Avatar billede avminarm Juniormester
23. september 2002 - 10:16 #3
vedr 1. vil det så være nemt nok at kordinere oplysningerne i de to tabeller ?

vedr 3. jeg bruger php og kender godt date(), men er der ikke noget med at MySQL har sin egen date funktion ? - er den smaretre eller er det ligegyldigt hvilken en man bruger ?
Avatar billede ghazaleh Nybegynder
23. september 2002 - 10:24 #4
Du kan kalde din første række for 'id' i din persontabel, som så bliver din nøgle i denne tabel. I den anden tabel laver du en fremmednøgle. Dvs. at du laver en række som hedder noget med 'personid'. så har du en kobling mellem de to tabeller.

Jo, der er også en date funktion i mysql. Du kan læse om den her: http://www.mysql.com/doc/en/Date_and_time_functions.html
Denne funktion er meget bedre og mere fleksibel at bruge end den i php, men den i php er nemmere at sætte sig ind i, så hvis du kun lige skal bruge en simpel dato funktion, så vil jeg råde dig til at bruge den i php, men hvis du er meget interesseret i at lære mere om mysql, ja så synes jeg da at du skal prøve at kigge på denne funktion
Avatar billede avminarm Juniormester
23. september 2002 - 10:27 #5
Øhh - det med fremmednøglen kan jeg ikke rigtig se for mig - kunne jeg lokke lidt mere ud af dig om det ? - jeg er med på en tabel med personer der har hver deres ID.

og ups - du skal jo lige have points ;-)
Avatar billede ghazaleh Nybegynder
23. september 2002 - 10:39 #6
ja det med nøgler er ikke så lige til - Der skal man nok læse lidt i nogle bøger om databaser.

Men jeg kan da lige komme med et eksempel fra min egen side. Jeg har en tabel der hedder 'bruger' og den består af: (id, navn + lidt mere).
Så har jeg en tabel der hedder 'nyhed' og den består af: (id, overskrift, nyhed,tidspunkt, personid).

Når en bruger indsætter en nyhed, så ved jeg at det er brugeren med fx id = 5, der ved bliver der indsat følgende nyhed: (id=1, overskrift='Dette er overskriften', nyhed='Dette er nyheden', tidspunkt='13-09-2002', personid=5)

Og når jeg så henter nyhederne, så skriver jeg:

$resultat = mysql_query("SELECT * FROM nyhed ORDER BY tidspunkt");
while($nyhed = mysql_fetch_row($resultat)) {
  $resultat2 = mysql_query("SELECT navn FROM bruger WHERE id=$nyhed[4]");
  $bruger = mysql_fetch_row($resultat2);
  //Her skriver man så overskriften og at den er indsat af $bruger
}

Dette betyder at hver gang jeg henter en nyhed, så henter jeg brugerens navn med det personid, som er registreret i nyhedstabellen
Avatar billede ghazaleh Nybegynder
23. september 2002 - 10:39 #7
og tak for points.... :-)
Avatar billede avminarm Juniormester
23. september 2002 - 10:42 #8
ahhhh - smart - takker for hjælpen - er der nogen database bøger du kan anbefale ? - jeg har kun hæftet "start på sql"
Avatar billede ghazaleh Nybegynder
23. september 2002 - 10:48 #9
jeg har desværre ikke en bibel om databaser, da jeg gik i skole brugte jeg lidt forskelligt. Du kan fx kigge:

hæftet: "databasestyrede websider" fra idg (www.idgforlag.dk/)
Eller "teach yourself php in 24 hours" Der er der et afsnit om mysql.
Ellers kan man også få meget ud af hjemmesiden www.mysql.com
Avatar billede avminarm Juniormester
23. september 2002 - 10:51 #10
ok - takker - har faktisk lige lånt "teach yourself php in 24 hours"
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