非主キーを自動インクリメントすることは可能ですか?
テーブル「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)
このテーブルには他のインデックスはありません。ただし、comment_id
別のテーブルを簡単に作成できるように、列を自動インクリメントしたいと思います。
テーブル「book_comments_votes」
comment_id (medium_int)
user_id (medium_int)
Primary key -> (comment_id, user_id)
ユーザーは、本のコメントごとに 1 回だけ投票できます。このテーブルは、主キーによってこの規則を適用します。
質問:
テーブル「book_comments」の列を自動インクリメントするように、非主キーを自動インクリメントすることは可能ですか?comment_id
代替案、ディスカッション。
上記で説明したように、簡単にするためにこれを行いたいと思います。代替案は有望ではありません。
- commnet_id PK を作成し、上で一意のインデックスを使用して整合性を確保します
book_id, timestamp, user_id
。この場合、追加のインデックスを作成します。 - PK を保持し、comment_id を
book_comments_votes
PK 全体に置き換えます。これにより、テーブルのサイズが 3 倍以上になります。
提案?考え?