Det som händer är att vi hade en gammal lösning för användare (tabellen "Users"), den här ville kunden bygga ut så vi valde att komplimentera användarinformationen med en till tabell kallad då "Extended_Users". Samtidigt skall de ha ett invitesystem där den som är först på inviten ska få lite speciella förutsättningar (se "InviteSystem").
Nu då man registrerar en användare så innebär ju detta att det blir tre databasanrop efter varandra vilket väl kan vara dumt, eller vad säger experterna?
// ### Vanliga användartabellen
mysql_query("INSERT INTO Users
VALUES (
'',
'$UserName',
'".sha1($Password)."',
'$Email',
'$Name',
'$SurName',
'1',
'',
'',
'',
'',
'$MobileExtended',
'',
'',
''
)") or die(mysql_error());
$used_id = mysql_insert_id(); // Senaste "UserID"
// ### Extended användartabellen
mysql_query("INSERT INTO Extended_Users
VALUES (
'$used_id',
'$InviteCode',
'$Gender',
'$Address',
'$PostalCode',
'$City',
'$Country',
'$MobileExtended',
'$Occupation',
'$HowFindUs'
)") or die(mysql_error());
// ### Uppdatera inviten med ny information
mysql_query("UPDATE InviteSystem SET
FirstUserID=IF(FirstUserID='0','".$used_id."',FirstUserID),
FirstUsed=IF(FirstUsed='0','".time()."',FirstUsed),
LastUsed='".time()."',
NumberUsed=NumberUsed + 1
WHERE InviteCode='$InviteCode'") or die(mysql_error());