petterg Skrevet 11. august 2005 Del Skrevet 11. august 2005 Skal lage en meldingsdatabase. Det skal være mulig å referere til et meldingsnummer, så hver melding trenger en unik id. Tenkte da å ha en id-kolonne og bruke autoincrement funksjonen i mysql. En eller annen gang langt frem i tid vil denne kolonnen nå sin maksimale verdi. Hva skjer da? Gamle meldinger er det lite poeng å ta vare på, så jeg tenkte kanskje det kunne være en løsning å lage et cronscript som slettet alle meldinger unntatt de X siste, men det vil fortsatt gjøre at autoincrement fortsetter å telle oppover, og nå maksgrensen. Om man i tillegg satt cronscriptet til å renummerere meldingene fra nr 1 hver gang vil det bli tull med referansen til disse meldingene. (Og autoincrement funksjonen ville vel også fortsatt å telle fra dit den hadde kommet?) Det er FLERE php script som skal legge meldingene i databasen. Dersom jeg legger inn en eller annen form for id-generering i php scriptene vil det måtte sjekke om den genererte id'n finnes fra før, og evt gjøre et nytt forsøk på å generere en unik id. I værste fall kan den jo bli stående i det uendelige å generere id'r! En nødløsning er å nullstille hele databasen når maks er nådd. Det er jo veldig sjelden det blir aktuelt, men likevel ingen god løsning. Noen lure ideer? Databasen er mysql. Lenke til kommentar
???????? Skrevet 11. august 2005 Del Skrevet 11. august 2005 (endret) Tror ikke det er det første du burde bekymre deg over. Et vanlig int unsigned felt tar verdier fra 0 til 4 294 967 295, eller sagt med ord: 4 milliarder, 294 millioner, 967 tusen, 295. Hvis du da skulle få en melding hvert sekund hele døgnet gjennom så holder databasen i 136 år. Innen den tid så håper jeg virkelig at du eller et par generasjoner etter deg har oppdatert systemet. Hvis du fortsatt skulle synes at det er litt lite så kan du se på bigint, den tar verdier fra 0 til 18 446 744 073 709 551 615. Det skulle å så fall holde i magne tusen år. Lenge før du ville få problemer med databasen ville serveren bli for svak på grunn av den store pågagnen og du måtte installert en mange server løsning. Endret 11. august 2005 av ???????? Lenke til kommentar
petterg Skrevet 11. august 2005 Forfatter Del Skrevet 11. august 2005 Kanskje ikke så dumt å regne ut hvor lang tid det faktisk vil gå før det blir "fullt".... Får vel skrive i testamentet at noen må huske å tømme databasen om noen hundre år. (Får håpe den ikke blir for populær da.) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå