Kurze Antwort: ja .
Lange Antwort:
- Sie müssen Ihren Tisch auf etwas verbinden können
- Wenn Sie möchten, dass Ihre Tabelle geclustert wird, benötigen Sie eine Art Primärschlüssel.
- Wenn Ihr Tischdesign keinen Primärschlüssel benötigt, überdenken Sie Ihr Design: Höchstwahrscheinlich fehlt Ihnen etwas. Warum identische Aufzeichnungen führen?
In MySQL erstellt die InnoDB-Speicher-Engine immer einen Primärschlüssel, wenn Sie ihn nicht explizit angegeben haben, sodass eine zusätzliche Spalte erstellt wird, auf die Sie keinen Zugriff haben.
Beachten Sie, dass ein Primärschlüssel zusammengesetzt sein kann.
Wenn Sie eine Viele-zu-Viele-Verknüpfungstabelle haben, erstellen Sie den Primärschlüssel für alle an der Verknüpfung beteiligten Felder. So stellen Sie sicher, dass Sie nicht zwei oder mehr Datensätze haben, die einen Link beschreiben.
Neben den logischen Konsistenzproblemen profitieren die meisten RDBMS-Engines davon, diese Felder in einen eindeutigen Index aufzunehmen.
Und da für jeden Primärschlüssel ein eindeutiger Index erstellt werden muss, sollten Sie ihn deklarieren und sowohl logische Konsistenz als auch Leistung erzielen.
In diesem Artikel in meinem Blog erfahren Sie, warum Sie immer einen eindeutigen Index für eindeutige Daten erstellen sollten:
PS Es gibt einige sehr, sehr spezielle Fälle, in denen Sie keinen Primärschlüssel benötigen.
Meistens enthalten sie Protokolltabellen, die aus Leistungsgründen keine Indizes haben .