/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
[MySQL] Flere reference-henvisninger i et ~
Fra : Janus


Dato : 13-02-07 14:26

Hvis nu man har en tabel der hedder 'Mand' med følgende felter:

ID | Navn | Signalement

Der er så sølgende data i den tabel jeg kalder 'Mand':

1| Jens | 2
2| Hans | 1
3| Mads | 1

Signalement-feltet er en reference til et ID i en anden tabel i
databasen.
Den tabel kan jeg så kalde for 'Signalement'.

'Signalement' har følgende felter:

ID | Kendetegn

Med følgende data:

1 | Almindelig
2 | Fedladen
3 | Rødhåret

Altså ved vi nu, at Hans og Mads er almindelige af bygning, men Jens
er fedladen.

Men problemet er at Jens BÅDE er fedladen OG rødhåret.

Hvordan får jeg refereret til både Signalement-ID '2' og '3' oppe Mand-
tabellen ved Jens?

Håber I forstår hvad jeg mener. Jeg har forsøgt at forklare det
enkelt. Jeg er faktisk slet ikke igang med at lave lige netop sådan en
database.

--
Janus


 
 
Martin (13-02-2007)
Kommentar
Fra : Martin


Dato : 13-02-07 14:43

Janus wrote:
> Der er så sølgende data i den tabel jeg kalder 'Mand':
>
> 1| Jens | 2
> 2| Hans | 1
> 3| Mads | 1
>
> Signalement-feltet er en reference til et ID i en anden tabel i
> databasen.
> Den tabel kan jeg så kalde for 'Signalement'.
>
> 'Signalement' har følgende felter:
>
> ID | Kendetegn
>
> Med følgende data:
>
> 1 | Almindelig
> 2 | Fedladen
> 3 | Rødhåret
>
> Men problemet er at Jens BÅDE er fedladen OG rødhåret.

Du skal have en ekstra tabel.

signalement_to_person

Denne indholder kun 2 felter
ID_fra_person
ID_fra_signalement

Så fjerner du signalement fra din person tabel.

Så kan du nemlig have uendeligt mange signalementer til hver person.

PS:
Jeg sætter FUT til dk.edb.database da det hører hjemme der

Peter Brodersen (13-02-2007)
Kommentar
Fra : Peter Brodersen


Dato : 13-02-07 14:46

On 13 Feb 2007 05:26:06 -0800, "Janus" <newsgroup@hjerteknuser.dk>
wrote:

>Men problemet er at Jens BÅDE er fedladen OG rødhåret.
>
>Hvordan får jeg refereret til både Signalement-ID '2' og '3' oppe Mand-
>tabellen ved Jens?
>
>Håber I forstår hvad jeg mener. Jeg har forsøgt at forklare det
>enkelt. Jeg er faktisk slet ikke igang med at lave lige netop sådan en
>database.

Lige nu har du et mange-til-en-forhold. Flere personer kan have den
samme egenskab. Men én person kan ikke have flere egenskaber.

Du er interesseret i et mange-til-mange-forhold (hvor en person kan
have flere egenskaber, og en egenskab kan deles af flere personer). I
praksis opretter man en mellemliggende tabel mellem Mand og
Signalement, fx M_S_Relation. Du fjerner så tilsvarende Signalement
fra Mand-tabellen

Mand:
ID | Navn
1| Jens
2| Hans
3| Mads

Signalement:
ID | Kendetegn
1 | Almindelig
2 | Fedladen
3 | Rødhåret

M_S_Relation:
Mand_ID | Signalement_ID
1 | 2
1 | 3
2 | 1
3 | 1


Du kan nu join'e fra Mand over M_S_Relation til Signalement.

--
- Peter Brodersen
Kendt fra Internet

Janus (13-02-2007)
Kommentar
Fra : Janus


Dato : 13-02-07 15:09

On 13 Feb., 14:46, Peter Brodersen <usenet2...@ter.dk> wrote:

>
> Du kan nu join'e fra Mand over M_S_Relation til Signalement.
>

Aha.. Tak.

Jeg er ikke så god til det der databaseværk, men det der er jo enkelt
nok.

"M_S_Relation" skal så ikke have unique ID eller noget helst. Kun to
helt almindelige felter?

Jeg kan ikke lige lure hvordan man skal hente resultatet ud i en
resultatside, men det finder jeg vel ud af når jeg kommer så langt..

Tak igen.
--
Janus


Martin (13-02-2007)
Kommentar
Fra : Martin


Dato : 13-02-07 15:28

Janus wrote:
> On 13 Feb., 14:46, Peter Brodersen <usenet2...@ter.dk> wrote:
>
>> Du kan nu join'e fra Mand over M_S_Relation til Signalement.
>>
>
> Aha.. Tak.
>
> Jeg er ikke så god til det der databaseværk, men det der er jo enkelt
> nok.
>
> "M_S_Relation" skal så ikke have unique ID eller noget helst. Kun to
> helt almindelige felter?

Jep

>
> Jeg kan ikke lige lure hvordan man skal hente resultatet ud i en
> resultatside, men det finder jeg vel ud af når jeg kommer så langt..

Lidt om joins her
<http://www.keithjbrown.co.uk/vworks/mysql/mysql_p5.php>

Igen... FUT dk.edb.database
Database hører ikke hjemme i PHP

Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408518
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste