"Tonni Aagesen" <use.my@signature.com> writes:
> Hejsa NG,
>
> Jeg har læst lidt om relationer på:
>
http://www.phpbuilder.com/columns/barry20000731.php3?page=1
>
> Ud fra denne artikel har lavet følgende tabeller:
>
> CREATE TABLE genreProfil(
> ID INT NOT NULL,
> G_ID INT,
> P_ID INT,
> FOREIGN KEY (G_ID) REFERENCES genre (ID),
> FOREIGN KEY (P_ID) REFERENCES profil (ID),
> PRIMARY KEY (ID));
>
> CREATE TABLE genre(
> ID INT NOT NULL,
> name VARCHAR(255),
> G_ID INT,
> FOREIGN KEY (G_ID) REFERENCES genreProfil (ID),
> PRIMARY KEY (ID));
>
> CREATE TABLE profil(
> ID INT NOT NULL,
> username VARCHAR(255),
> P_ID INT,
> FOREIGN KEY (P_ID) REFERENCES genreProfil (ID),
> PRIMARY KEY (ID));
>
> Lad os sige at de har følegende data:
>
> genreProfil
> --------------------------------
> | ID | G_ID | P_ID |
> --------------------------------
> | 1 | 1 | 1 |
> --------------------------------
> | 2 | 3 | 1 |
> --------------------------------
> | 3 | 2 | 2 |
> --------------------------------
> | 4 | 3 | 2 |
> --------------------------------
>
> genre
> --------------------------
> | ID | name |
> --------------------------
> | 1 | Pop |
> --------------------------
> | 2 | Blues |
> --------------------------
> | 3 | Jazz |
> --------------------------
>
> profil
> --------------------------
> | ID | username |
> --------------------------
> | 1 | Per |
> --------------------------
> | 2 | Lars |
> --------------------------
>
> Altså: Per hører Pop og Jazz, mens Lars hører Blues og Jazz.
>
> Men jeg har to problemer:
>
> 1) hvad kan jeg bruge disse FOREIGN KEY til?
Kun til dokumentation i MySQL afaik
> 2) Jeg kan ikke greje at lave SQLsætning, der kan [1] vælge alle genre [2]
> finde ud af om eks. Lars har valgt denne genre. Hvis vi tager Lars som eks.
> skal mit output være noget i retningen af:
[1] select name from genre;
[2] select name from genre r, profil p,genreprofil pf
where p.username='lars' and p.P_ID=pf.ID and pf.G_ID=r.ID;
- dette finder dog kun de genrer som lars er tilmeldt - ikke dem som han
ikke er tilmeldt. Det bliver du nødt til at kombinere dig frem til.
--
Mvh. Kim Petersen /| Tlf: +4575831551 |\ Jomfru Ingefreds Vej 18
Software Engineer / | Fax: (none atm.) | \ 7100 Vejle
LSS / | Email: kim@vindinggaard.dk | \ DK - Danmark