Avatar billede nicolaib Praktikant
10. maj 2007 - 20:40 Der er 7 kommentarer og
1 løsning

Råd til forhold mellem tabeller

Hvis man skal lave en tabel/ler over en gruppe som skal bestå af medlemmer med medlemsnumre som befinder sig i sin egen tabel. Hvordan gøres det?

Eksempel:
Jeg har en tabel med medlemmer og disse skal kunne tilmelde sig grupper. En gruppe skal kunne have et ubegrænset antal medlemmer. Der skal kunne oprettes et ubegrænset antal grupper.

Spørgsmål:
Hvordan skal tabellen for grupper se ud?
Skal man lave en tabel til alle grupper eller mange tabeller der indeholder en gruppe hver?
Altså hvordan hænger den her slags sammen?
Avatar billede erikjacobsen Ekspert
10. maj 2007 - 21:25 #1
En tabel til medlemmer, en tabel en grupper, og en medlem-gruppe tabel (en mange til mange tabel) med en fremmednøgle til medlemstabellen og en fremmednøgle til gruppetabellen.

Du skal nok sommetider lave en join mellem 3 tabeller. Tænk over indexer når du har fået det til at virke.
Avatar billede nicolaib Praktikant
10. maj 2007 - 22:15 #2
Jeg er stadig ikke helt med.
Hvad skal attributterne så være i den Medlem-gruppe-tabel. Bliver det så medlemmerne af grupperne vandret og grupperne nedefter. Dermed en tabel der bliver MEGET bred.

Hvad menes der med de indexer der nævnes?
Avatar billede erikjacobsen Ekspert
10. maj 2007 - 22:43 #3
Få det til at virke først, så kan du kigge på indexer senere. Betyder ikke noget for små tabeller. Men jeg høre på dig at du har meget at lære endnu :)

Medlem_gruppe indeholder 2-3 felter. Lad os give den en autonum-felt, så der bliver 3:

1  medlem1  gruppe1
2  medlem1  gruppe2
3  medlem2  gruppe2
4  medlem4  gruppe3
5  medlem4  gruppe1

medlem1 er medlem af gruppe1 og 2
medlem2 er medlem af gruppe2
medlem3 er ikke medlem af nogle grupper
medlem4 er medlem af gruppe1 og 3

Du kan søge på "many-to-many" og læse mere.
Avatar billede nicolaib Praktikant
10. maj 2007 - 23:27 #4
Bestemt. Jeg har ALT at lære endnu om databaser. Men det der gav perfekt mening. Tak for hjælpen! God forklaring til sidst.
Læg lige et svar så du kan få dine point.
Avatar billede erikjacobsen Ekspert
10. maj 2007 - 23:31 #5
Ja, det hjælper at "tegne" det ;)  Jeg samler slet ikke på point, tak.
"Bliver det så medlemmerne af grupperne vandret og grupperne nedefter."  -  det er hvad jeg kalder Excel-syndromet, at tænke på den måde, når man skal lave tabeller til en database. Det holder nok i et regneark, med det skal drejes 90 grader i en database.

En god regel er at man ikke skal ændre i tabelstruktur, eller tilføje flere tabeller, hvis man reelt kun kommer flere data i databasen.
Avatar billede nicolaib Praktikant
11. maj 2007 - 16:31 #6
Ja det var også det jeg gerne ville undgå, men jeg havde ikke forstået hvordan. Det har jeg nu, ihvertfald mht. det her eksempel.

På et sted som eksperten.dk er det så ikke sådan at alle spørgsmål bliver oprettet i en tabel og opdelt efter kategori. Derefter oprettes der så en ny tabel for hver spørgsmål som vores indlæg kommer til at ligge i?
Er dette rigtig eller ligger vores kommentarer så i samme tabel med et id til hvert spørgsmål?

Det her er et forsøg på at blive lidt klogere på sammenhængen i databaser. Kender du eventuelt en god bog om det her.
Mange tak for hjælpen!
Avatar billede erikjacobsen Ekspert
11. maj 2007 - 17:22 #7
Jeg kender nok ikke rigtig gode bøger om det her. Jeg har nogen på hylden, men de er ret komplicerede - også for mig ;)

Eksperten.dk har nok een tabel til spørgsmål: et autonummereret felt (777697 i dit tilfælde her). Et felt til kategorinummer (navnene står et andet sted), en overskrift, brugeren, der har stillet spørgsmålet, point, status, dato/tid - og teksten i spørgsmålet.

Der oprettes således kun en række for hvert nyt spørgsmål.

Svar og kommentarer ligger så i en anden tabel, med en fremmednøgle tilbage til spørgsmålet, brugernavn, dato/tid, teksten, et felt med kommentar, svar, accepteret svar, og sikkert et felt med hvor mange point svaret har givet.

Mere end i alt væsentligt de 2 tabeller behøvs ikke (jo, brugere, kategorier, artikler, etc...)

(Husk at acceptere dit svar)
Avatar billede nicolaib Praktikant
12. maj 2007 - 20:44 #8
Takker mange gange.
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