andere manier van id optellen
Normaal heb je voor het aanmaken van ID's en het optellen hiervan auto increment in mysql. Deze telt op als bvb 123 en als je dan 3 verwijdert gaat ie daarna alsnog verder met 4. Dit heb ik nodig maar dan op een andere manier, gezien ik auto increment al gebruik in een tabel. Ik heb namelijk een unique id, die is auto increment. Dan heb ik telkens een id, die is per 4 invoeren hetzelfde en die 4 invoeren hebben dan verschillende talen. Verder staan er dan nog dingen in als title en content. Zo heb ik dus items in verschillende talen maar met dezelfde ID. Deze koppel ik aan een categorie met een koppeltabel, Die koppelt bvb item_id 11 aan cat_id 4. Als ik dan alle items ophaal bij categorie 4 kan ik kijken welke taal er geselecteerd is en haal daarbij de betreffende id op. Dit werkt prima, alleen ik zie een probleem bij de categorieen. Deze worden op dezelfde manier gemaakt als de items. Als ik een categorie door de gebruiker laat verwijderen, en ik maak een nieuwe aan dan zal hij 3 invoeren maken met dezelfde id als de verwijderde categorie, aangezien ik die verkrijg door het kijken naar de hoogste id en die +1 doe.
Best lastig uit te leggen dit misschien word het duidelijker door een voorbeeld:
uniq_id id lang name
1 1 en Paints
2 1 fr Peintures
3 1 de Farben
zo ziet bvb 1 invoer eruit bij mij, ze moeten allemaal dezelfde ID hebben omdat het dezelfde categorie betreft maar met verschillende talen. Hoe zorg ik er nou voor dat als ik id 3 verwijder bvb en daarna een nieuwe toevoeg dat die een uniek id krijgt, en niet meer gemaakt wordt op basis van de vorige hoogste id?
groeten!
Bij insert id_teller ophalen en gebruiken.
Dan direct id_teller = id_teller + 1 doen.
dat is toch hetzelfde als wat ik nu heb, al zou ik de laatste invoer verwijderen en een nieuwe maken, dan verwijder ik toch ook gelijk id_teller, en telt hij dus doodleuk de vorige op, resulterend in een aantal gelijk aan dat van de zojuist verwijderde.
SanThe schreef op 19.09.2008 13:42:
Apart veldje maken => id_teller
Helemaal apart. Desnoods een eigen tabel. Niet in een bestaand record.
Edit:
Tabel 1
uniq_id id lang name
1 1 en Paints
2 1 fr Peintures
3 1 de Farben
Tabel 2
id_teller
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Vaag, als ik bij mij m'n laatste verwijder, gaat hij gewoon verder met tellen waar hij was?
ik ga het wel ff proberen met een apart id_teller.
Gewijzigd op 01/01/1970 01:00:00 door martijn
let op dat je inderdaad het ID veld alleen gebruikt als identificatie van die rij, niet iets anders. vooral niets met berekeningen oid