Mysql Innodb: Autoincrement klucz inny niż podstawowy
Czy jest możliwe automatyczne zwiększenie klucza innego niż podstawowy?
Tabela „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)
W tej tabeli nie będzie żadnych innych indeksów. Chciałbym jednak zrobićcomment_id
autoincrement kolumny, dzięki czemu mogę łatwo utworzyć kolejną tabelę:
Tabela „book_comments_votes”
comment_id (medium_int)
user_id (medium_int)
Primary key -> (comment_id, user_id)
Użytkownicy będą mogli głosować tylko raz na komentarz do książki. Ta tabela wymusza tę regułę za pomocą klucza podstawowego.
Pytanie:
Czy możliwe jest automatyczne zwiększanie klucza innego niż podstawowy - tak jak w przypadku automatycznego zwiększaniacomment_id
kolumna w tabeli „book_comments”?
Alternatywy, dyskusja:
Chciałbym to zrobić dla uproszczenia, jak wyjaśniono powyżej. Alternatywy nie są obiecujące.
Dokonaj PK commnet_id i wymuszaj integralność za pomocą unikalnego indeksubook_id, timestamp, user_id
. W tym przypadku stworzyłbym dodatkowy indeks.Trzymaj PK i zamień comment_id wbook_comments_votes
z całą PK. To więcej niż trzykrotność rozmiaru stołu.Propozycje? Myśli?