10. december 2007 - 19:32Der er
17 kommentarer og 1 løsning
Hvordan laver man 2 primary keys? (Brugersystem)
Hej Eksperter
Er i gang med at lave en brugersystem til min hjemmeside. Og vil gerne kunne gøre det på sådan en måde at den enkelte bruger har mulighed for at have 2 brugernavn / 2 email som kan bruges til at logge ind på den pågældende bruger..
hvad skal man skrive for at lave en PRIMATY KEY og en SECOND KEY?
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Man kan ikke have 2 primary keys, men som jop siger kan man have en primary key og et unique index.
Men umiddelbart synes jeg nu mere at det lyder som om du vil have: - en user tabel med et user id - en logininfo tabel med brugernavn og email og en foreign key til user tabel saaledes at du kan have 2 records i logininfo der peger paa samme record i user.
Arh ja okay.. Hvordan laver man så sådan en unik key? synes ikke rigtig at jeg kan finde nogle hjemmesider som KLART og TYDELIGT gennemgår de forskellige udtryk i sql?!
Hmm.. hvad skulle det gøre som forskel?
Meningen ved det var at 2 forskellige personer f.eks. studiegruppe. Med hver deres mail skal kunne logge ind under samme konto.
Sorry, men har lidt svært med at se hvordan den så skal kunne sammenarbejde med det andet table? :S
Må du gerne forklare :)
Hvis man nu skriver følgende ved oprettelse af et table:
<?php include("connect.php");
mysql_query(" CREATE TABLE users ( email1 int(30) NOT NULL, password varchar(16), email2 int(30), password2 varchar(16), PRIMARY KEY (email) )") or die ("FEJL VED OPRETTELSE AF TABLE. Fejlen er følgende: <br><br><b>".mysql_error());
?>
// Hvordan sætter man så en unik key ind? - Har jo allerede sat en ved det første mail? men hvordan gør man så at mail2 også er unik. og ikke kan findes i hverken kolonnel mail1 eller mail2?
Men hvor skriver du dette "CREATE UNIQUE INDEX ix_email1 ON users (email1);" ind henne??? er det KUN ved oprettelse af bruger du gør det? other was?
eller hvor skal man præcis skrive det ind henne?
Vil gerne gøre det på den anden måde som du snakker om. Tror bare ikke helt jeg har forstået hvordan det virker?!?
Man opretter en bruger under et table kaldet "users". Denne bruger har så alle mulige infomationer inde i sig. Addresse, tlf nummer. osv osv. Men hvis man så skal oprette et andet table med to andre users / mails, hvordan skal de 2 forskellige table som sammearbejde?
hmm.. Men hvad skulle det overhoved gøre af forskel?? Kan jeg vist stadigvæk ikke rigtig se. For mig virker det stadigvæk som om email1 og email2 er en meget nem løsning. Hvis blot man kan gøre dem begge unikke. Og det virker det jo som om at man kan..! ved denne der formel:
CREATE UNIQUE INDEX ix_email1 ON users (email1); CREATE UNIQUE INDEX ix_email2 ON users (email2);
Men man skal jo faktisk også chekke den ydeligere 2 gange right?
altså CREATE UNIQUE INDEX ix_email1 ON users (email1); CREATE UNIQUE INDEX ix_email1 ON users (email2); CREATE UNIQUE INDEX ix_email2 ON users (email1); CREATE UNIQUE INDEX ix_email2 ON users (email2);
Sorry jeg først svare tilbage nu. Har bare brugt alt min fritid på PHP. Nærmere betegnet hvordan jeg fik noget login til at virke. (hvilket dog et lykkes nu).
Har dog efterfølgende fundet ud af at jeg gerne vil lave mit bruger system på en anden måde. Menlig denne:
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.