13. marts 2002 - 14:48Der er
11 kommentarer og 1 løsning
Relation mellem 2 tabeller
Hej Jeg har et lille problem som jeg gerne vil have løst. I min database har jeg en tabel "person" med personlige oplysninger, og vil gerne have en anden tabel "type" kædet sammen via primærnøglen i "person" tabellen. Desværre har jeg i tidernes morgen lavet primærnøglen i person som et autonummeringsfelt, hvilket gør det lidt svært at lave relationen mellem de 2 tabeller. Jeg kan godt fuske mig til at lave relationen, ved at angive et navn i person tabellen som svarer til klokken+nogle karakterer indsætte posten i "person" tabellen, for derefter at søge i "person" tabellen efter navnet klokken+nogle karakterer og få ID'en på den record. Dette Id kan jeg så bruge i "type" tabellen. Kan det gøres smartere? eller må jeg acceptere denne fremgangsmåde fordi jeg lavede primærnøglen som et autonummeringsfelt?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Jamen det er da en god ide at lave primær nøglen som et autonummeringsfelt. Det gør jeg da altid. Du kan enten tilføje et felt i person som hedder TypeID, eller tilføje et felt i Type som hedder PersonID, og kæde de 2 felter sammen. Så skal du bare sørge for at fylde "ID" nummeret over i dette felt, for den person, som er den givne type. Hmm. Det lyder da lidt snørklet. Sig til hvis du skal have forklaring, eller hele koden?
Fremgangsmåde som du beskriver er også den jeg bruger. Problemet er at få id'et over i Type tabellen. Når jeg laver en insert i person tabellen, kender jeg jo ikke personid'et idet det jo bliver talt automatisk op. Det giver jo et problem når jeg vil lave relationen til Type tabellen, da jeg jo skal vide hvilket personid jeg skal sætte ind! Håber du forstår hvad jeg mener
Hvad hvis der er en anden bruger som sidder og opretter nogle personer, så kan jeg da ikke være sikker på at LAST_INSERT_ID() returnerer det rigtige id?
Den sidste funktion kan jeg ikke lige hitte ud af. -Hvor kommer den fra. Kan du ikke vise mig et større kode eksempel? Evt. i ASP måske. På forhånd tak
Jeg ved ikke hvad tilsvarende funktion hedder i ASP. $person_id er bare et variabel navn, og mysql_insert_id() er php funktion for at hente det ID som autonummer lige har indsat i MySQL
> Hvad hvis der er en anden bruger som sidder og opretter nogle > personer, så kan jeg da ikke være sikker på at LAST_INSERT_ID() > returnerer det rigtige id?
Jo, det kan du. Funktionen knytter sig til den enkelte mysql-session, og derfor vil flere brugere godt kunne benytte systemet samtidigt.
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.