J jboy_87 Medlem sedan aug. 2001 1 099 inlägg Trådstart 8 feb. 2004 15:34 #1 Hejsan!
Undra hur man går till väga om man vill joina Besokare1,Besokare2,Besokare3 osv... med Anvandarnamn posterna i medlem tabellen? hur skriver man ut dem?
medlem tabellen:
ID int(11)
Anvandarnamn varchar(15) == "jboy_87" <-- flera poster under
Kon varchar(6)
Fodd varchar(10)
Nyfikna tabellen:
ID int(11)
Till varchar(15)
Besokare1 varchar(35) === "jboy_87"
Besokare2 varchar(35) === "hmm"
Besokare3 varchar(35) === "Join"
Besokare4 varchar(35) === "jöns"
Besokare5 varchar(35)
Besokare6 varchar(35)
Besokare7 varchar(35)
Besokare8 varchar(35)
Besokare9 varchar(35)
Besokare10 varchar(35)
L LarsG Medlem sedan dec. 2000 12 464 inlägg Man ändrar datamodellen. Ha en kolumn i nyfikna tabellen. Om det finss flera nyfikna, lagra flera poster. Sen så är det en helt vanlig join.
J jboy_87 Medlem sedan aug. 2001 1 099 inlägg det e det jag inte vill göra! vill köra update istället för insert dessutom så blir det fel med indexeringen när man raderar nån besökare och så blir posterna över 100 tusen!
L LarsG Medlem sedan dec. 2000 12 464 inlägg Om du har en bra indexering så är det inget problem att ha mer än 100000 poster i en tabell.
dessutom så blir det fel med indexeringen när man raderar nån besökare
Hur då?
J jboy_87 Medlem sedan aug. 2001 1 099 inlägg då blir det 1,2,3,4,5,8,10,19... I ID kolumnen om jag raderar nån post!
Då måste jag åsterställa index för ID!
L LarsG Medlem sedan dec. 2000 12 464 inlägg
Då måste jag åsterställa index för ID!
Varför det? Du skall aldrig bygga någon logik på att auto_increment ger sekventiella värden.
J jboy_87 Medlem sedan aug. 2001 1 099 inlägg så man måste inte återställa auto_increment för att få bättre prestanda?
J jboy_87 Medlem sedan aug. 2001 1 099 inlägg okidoki jag körde det här innan! trodde det skulle gå snabbare om man återställde index på ID:
if (isset($_GET['nyfikna'])) {
mysql_query("ALTER TABLE nyfikna DROP ID");
mysql_query("ALTER TABLE nyfikna ADD ID INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;");
}