MySQL Innodb: Autoincrement Nicht-Primärschlüssel
Ist es möglich, einen Nicht-Primärschlüssel automatisch zu inkrementieren?
Tabelle "book_comments"
book_id medium_int
timestamp medium_int
user_id medium_int
vote_up small_int
vote_down small_int
comment text
comment_id medium_int
Primary key -> (book_id, timestamp, user_id)
Für diese Tabelle sind keine weiteren Indizes vorhanden. Allerdings möchte ich das machencomment_id
Automatische Inkrementierung der Spalten, damit ich problemlos eine weitere Tabelle erstellen kann:
Tabelle "book_comments_votes"
comment_id (medium_int)
user_id (medium_int)
Primary key -> (comment_id, user_id)
Benutzer können nur einmal pro Buchkommentar abstimmen. Diese Tabelle erzwingt diese Regel durch den Primärschlüssel.
Frage:
Ist es möglich, einen Nicht-Primärschlüssel automatisch zu inkrementieren?comment_id
Spalte in der Tabelle "book_comments"?
Alternativen, Diskussion:
Ich möchte dies der Einfachheit halber tun, wie oben erläutert. Die Alternativen sind nicht vielversprechend.
Machen Sie die commnet_id PK und erzwingen Sie die Integrität durch einen eindeutigen Index aufbook_id, timestamp, user_id
. In diesem Fall würde ich einen zusätzlichen Index erstellen.Behalten Sie die PK bei und ersetzen Sie die comment_id in derbook_comments_votes
mit der gesamten PK. Dies würde die Größe des Tisches mehr als verdreifachen.Vorschläge? Gedanken?