sql >> Databasteknik >  >> RDS >> Mysql

Varför inte använda skapandet av en post som en primärnyckel?

Det allmänna svaret är att dina data kan ändras (där ett meningslöst id aldrig kommer att göra det)... vad händer när du inser att du lagrar tid i den lokala zonen och sommartid börjar? Om du vill lagra mot UTC och/eller mot en specifik tidszon? För fler beställningsfrågor se wcoenens svar .

Om du börjar skapa 1000-tals rader i sekunden och du måste bråka med data för att "få det att fungera" gör något det inte var avsett för. Kanske skulle du lägga till en disambigueringskolumn som skulle göra ditt index större och långsammare ...

Och sedan när ditt projekt blir megapopulärt och folk börjar försöka köra rapporter/frågor och "det använder ett datum som en PK???!!!"

Överväg också att använda en databas som tillåter klustrade index på icke-primära kolumner.



  1. Rails 3.1 - Pushing to Heroku - Fel vid installation av postgres-adapter?

  2. Hur man genererar skript för att lägga till standardbegränsningar till kolumn i flera tabeller i SQL Server-databasen - SQL Server / TSQL självstudie del 94

  3. Uppdatera en MySql-databas med PHP via en onClick-javascript-funktion

  4. Lägg till en tidszonförskjutning till ett datetime2-värde i SQL Server (T-SQL)