Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kann eine Datenbanktabelle ohne Primärschlüssel sein?

Technisch gesehen können Sie eine solche Tabelle deklarieren.

Aber in Ihrem Fall die time sollte zum PRIMARY KEY gemacht werden , da es wahrscheinlich falsch ist, unterschiedliche Temperaturen für die gleiche Zeit zu haben, und wahrscheinlich nutzlos, dieselbe mehr als einmal zu haben.

Logischerweise sollte jede Tabelle einen PRIMARY KEY haben damit Sie zwei Datensätze unterscheiden können.

Wenn Sie keinen Kandidatenschlüssel in Ihren Daten haben, erstellen Sie einfach einen Ersatzschlüssel (AUTO_INCREMENT , SERIAL oder was auch immer Ihre Datenbank anbietet).

Die einzige Entschuldigung dafür, keinen PRIMARY KEY zu haben ist ein Protokoll oder eine ähnliche Tabelle, die starker DML unterliegt und ein Index darauf wirkt sich auf die Leistung über das Toleranzniveau hinaus aus.