05. januar 2003 - 21:04Der 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
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 ;) )
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 :-)
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? ;)
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.
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...
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.