Avatar billede allandk Nybegynder
21. august 2001 - 23:55 Der er 5 kommentarer og
1 løsning

Fremmednøgler...

Såvidt jeg kan forstå, understøttes fremmednøgler ikke i nuv. versioner af MySQL, er der en anden måde man kan opnå samme resultat med?

ab:)
Avatar billede morw Nybegynder
22. august 2001 - 00:03 #1
hvad er det lige du vil opnå?
Avatar billede mkelle1 Nybegynder
22. august 2001 - 02:08 #2
Hej Allandk

Hvad mener du med at fremmednøgler ikke understøttes? Hvis du tænker på automatisk referentiel integritet så er det rigtigt, men du kan sagtens arbejde med fremmednøgler i MySQL, du skal bare selv holde styr på om en nøgle faktisk peger på et post i den relaterede tabel.

Hilsen

Mads
Avatar billede allandk Nybegynder
22. august 2001 - 09:09 #3
>> automatisk referentiel integritet: det er her jeg bli\'r afsløret som nybegynder :-)

Jeg vil opnå to ting:

1. Når en ny bruger opretter sig, skal han ryge ned i min User-tabel og samtidig skal han automatisk oprettes i en Point-tabel og en Statistik-tabel med samme ID som det han netop fik tildelt i User-tabellen.

2. Når brugeren får point skal de lægges til i Point-tabellen OG Statistik-tabellen.

Virker det klart?

ab:)
Avatar billede mkelle1 Nybegynder
22. august 2001 - 14:48 #4
Ja!

Jeg vil foreslå dig at lave 2 funktioner, så du dermed sikre at du gør de nødvendige ting hvergang.

Her er et exempel (Jeg ved jo ikke hvad du vil gemme om en bruger. Jeg forudsætter at dit BrugerID er et auto_increment felt. Da jeg ikke ved hvad du skal gemme i statistiktabellen har jeg ikke angivet nogle felter i sql-sætningen der opdaterer statistiktabellen.

<?
function opretBruger($BrugerNavn,$BrugerPass)
{
  $sql=\"insert into User_tabel (BrugerNavn,BrugerPass) values (\'$BrugerNavn\',\'$BrugerPass\')\";
  mysql_query($sql);
  $BrugerID=mysql_insert_id();
  $sql_point=\"insert into Point_tabel (BrugerID) values ($BrugerID)\";
  mysql_query($sql_point);
  $sql_statistik=\"insert into Statistik_tabel (BrugerID) values ($BrugerID)\";
  mysql_query($sql_statistik);
}

function opdaterPoint($BrugerID,$point)
{
$sql=\"update Point_tabel set Point=Point+$point where BrugerID=$BrugerID\";
mysql_query($sql);
$sql=\"update Statistik_tabel set dit_felt=?? where BrugerID=$BrugerID\";
mysql_query($sql);
}



Dermed skal du bare kalde en af funktionerne når du har brug for at oprette en ny bruger eller opdaterer point m.v. på en bruger.

Håber det har hjulpet.

Mads
?>
Avatar billede allandk Nybegynder
22. august 2001 - 22:16 #5
Det er et perfekt svar, og meget fint med et konkret eksempel.

Tak skal du ha\'

ab:)
Avatar billede mkelle1 Nybegynder
22. august 2001 - 23:03 #6
Hej Allandk

Fint at du kunne bruge det, tak for pointene

Mads
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