Avatar billede fqthjoe Nybegynder
05. januar 2003 - 21:04 Der er 5 kommentarer og
1 løsning

1 eller 2 tabeller ? - og hvordan forbindes de ?

Hej eksperter.
(til orientering: er "new" i Mysql)
Er ved at lege med en postkort-side. Og bruger følgende felter i en tabel (sendcard):
kortid - unik kortid
kortnavn - kortes navn
kortref - kortes reference til selve billedet
katid - kategori id
katnavn - katorinavn (f.eks. sjov,sport)
Nu bliver jeg i tvivl om tabellen skal deles op i 2 tabeller istedet. En med Kort (id,navn,ref) og en tabel med kategori(id,navn).
Er det en fordel ? og igivet fald hvordan forbinder jeg de to tabeller, så evt. at postkort-tabellen henter feltet katnavn ?. Kan huske lidt fra access verdenen med primærNøgle.. Men er ikke helt sikker på hvordan.
Er der en eller flere der har et forslag til hvordan jeg laver dette "bedst" fra start.
vh thjoe
Avatar billede dmcn Praktikant
05. januar 2003 - 21:09 #1
Helt klart to tabeller. Du kan så altid tilføje flere kategorier, ændre navn på en enkelt uden at skulle rette i alle postkort osv.
Du har ret godt fat i det i ovenstående eksempel - en SELECT kunne så se således ud:
SELECT sendcard.kortid, sendcard.kortnavn, sendcard.kortref, kategori.katnavn FROM sendcard, kategori WHERE sendcard.katid = kategori.id
(Burde virke - mangler lidt den præcise struktur for en SELECT der joiner uden INNER JOIN ;) )
Avatar billede fqthjoe Nybegynder
05. januar 2003 - 21:23 #2
Okay. forstår det meste :-)
Men, lad os sige jeg nu har de 2 tabeller (sendcard og kategori), så smider jeg 2 kategorier ind i tabellen kategori (f.eks. sjov og sport).
Når jeg så opretter et postkort i sendcard og udfylder kortid (autoincrement),kortnavn og kortref; hvordan kan jeg så vælge at tilknytte en kategori (som så hentes fra tabellen kategori).
Håber du/I forstår hvad jeg mener :-)
Avatar billede dmcn Praktikant
05. januar 2003 - 23:02 #3
Yesyes, jeg er med. :)
I kategori-tabellen har du to felter: id og katnavn.
id sættes til auto_increment og katnavn til varchar 30 or so. I katid i sendcard-tabellen indsætter du så id'et fra kategori-tabellen, 2 f.eks.
Så er det store spørgsmål - er DU med? ;)
Avatar billede niwikr Nybegynder
06. januar 2003 - 10:52 #4
Man kunne også vælge at lave det til en mange til mange relation, og oprette en tredje tabel der forbinder de to. Således at et kort kunne knyttes til flere kategorier (f.eks både sjov og sport). Men det ved jeg ikke om er relevant? Det gør i alle tilfælde databasen mere "robust" over for ændringer senere. Men selvfølgelig også lidt mere kompliceret SQL hvis man er ny på det område.

MVH
NIWIKR
Avatar billede fqthjoe Nybegynder
06. januar 2003 - 20:46 #5
Ja..her er jeg igen... (bruger phpMyAdmin)
Nu har jeg oprettet 2 tabeller: (har lige brugt andre navne)
xkategori = xkatid (INT, AUTO) og xkatnavn (VarChar50)
xkort = xkortid (INT,AUto), xnavn(VarChar50), xref(VarChar50),
Hvordan sætter jeg xkatid og xkatnavn ind i xkort-tabellen, skal felterne oprettes med samme navne som i xkategori-tabellen..
Så jeg bare kan udfylde katid med feks. 2 og så skriver den selv "sport" i katnavn.
Ved ikke om jeg er en tumpe til Mysql...forstår godt meningen med de to tabeller.. men kan ikke forstå hvis jeg sætter et katid, at den så ikke henter katnavn automatisk...
Avatar billede fqthjoe Nybegynder
03. marts 2003 - 15:11 #6
ok. lukker det lige igen
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