sql >> Database >  >> RDS >> Mysql

Waarom zou u de aanmaaktijd van een record niet als primaire sleutel gebruiken?

Het algemene antwoord is dat je gegevens kunnen veranderen (waar een nietszeggende id dat nooit zal doen)... wat gebeurt er als je je realiseert dat je tijd opslaat in de lokale zone en de zomertijd begint? Wilt u opslaan tegen UTC en/of tegen een bepaalde tijdzone? Zie wcoenens antwoord .

Als je duizenden rijen per seconde begint te maken, en je moet knoeien met gegevens om het "te laten werken" door iets te doen waarvoor het niet bedoeld was. Misschien zou je een ondubbelzinnige kolom toevoegen die je index groter en langzamer zou maken ...

En als je project dan mega populair wordt en mensen beginnen rapporten/query's uit te voeren en "het gebruikt een datum als een PK???!!!"

Overweeg ook om een ​​database te gebruiken die geclusterde indexen op niet-primaire kolommen toestaat.



  1. MySQL TEXT geheugentoewijzing

  2. mysql full-text zoeken werkt niet voor 3 tekens

  3. Automatisch SQLite-queryresultaten openen in Excel

  4. Een Peer-to-Peer Lending Platform-gegevensmodel