Vraag & Antwoord

Webprogrammeren & scripting

[php] herschikken id

6 antwoorden
  • is het ook mogelijk om in een database in MySQL, het id te herschikken, namelijk dat ik sorteer op achternaam? das een veld, en ik wil op achternaam het id sorteren. Dus niet met SORT ofzo, maar zo dat de eerste achternaam met een A id 0 heeft en iemand met een z nummer 59(de laatste)
  • Meestal wil je in een database een unieke waarde in elke tabel/rij hebben. Dit is vaak 'id'. Elke ingevoerde waarde krijgt automatisch een id mee, het is wel mogelijk om 'id' handmatig op te geven, maar dat verhoogt de kans op fouten aanzienlijk. Bovendien, als je een nieuwe naam in de tabel zet, zou iedere achternaam die verder in het alfabet zit een nieuwe id moeten krijgen, erg onhandig. Het beste is om toch voor de uitvoer (ik neem aan dat he je daar om te doen is) gewoon SORT BY te gebruiken. Je kunt natuurlijk wel regelnummers voor de uitvoer plaatsen, maar die nummers zijn dan niet gelijk aan 'id'.
  • maar ik heb een database met 59 deelnmers, en daar komt er geen meer bij. Daarom wil ik iedereen gesorteerd hebben in eengoed geöliede db
  • waarom wil je dat? ik denk dat je met een verkeerd beeld naar een database kijkt.. de volgorde binnen een db maakt niets uit, je maakt het er ook niet sneller mee. Intern worden de gegevens door het db-programma hoogst waarschijnlijk toch weer heel anders opgeslagen. Maar goed, mocht je het echt echt erg graag willen, maak dan een tijdelijk script dat de tabel leeghaalt, de gegevens sorteert, de tabel delete en weer creeert (zodat alle id's weg zijn) en voeg ze dan weer toe in de goede volgorde.
  • Hmm, ik zou ook gewoon de ID gewoon standaard gebruiken. Dus uniek. En aangezien je niet echt veel in je DB staan heb, zal het ook niet echt snelheidwinst opleveren.
  • [quote:c17e2b1b96="ANNErd"]maar ik heb een database met 59 deelnmers, en daar komt er geen meer bij. Daarom wil ik iedereen gesorteerd hebben in eengoed geöliede db[/quote:c17e2b1b96] Een goed geöliede db krijg je o.a. door op de juiste plekken een index te plaatsen. Bij het ophalen van je data sorteer je op achternaam (ORDER BY) en in de presentatie zet je daar een oplopend nummer bij als je graag een genummerde lijst hebt. Op het moment dat je een unieke sleutel in een database een andere functie geeft dan waarvoor deze is bedoeld, dan moet je jezelf afvragen of je wel de juiste weg bewandelt. Tenzij je natuurlijk zwaarwegende redenen hebt waarom de persoon A een ID met nummer 0 moet krijgen (relatie-, klant-, lidmaatschapsnummer), maar in dat geval zou dat imho weer geen PK moeten zijn. Overigens zal het bij deze aantallen gegevens soms niet eens uitmaken hoe je de index legt. Optimalisaties hoef je je niet druk over te maken bij zulke geringe hoeveelheden data i.c.m. recht-toe-recht-aan queries.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.