我正试图为产品制作一个评论部分。我正在为Comments
表设置两个主键,即CommentID
和ProductID
。但我想对主键做的事情如下:对于每个ProductID
,CommentID
应该从头开始计数。所以对于ProductID = 1
,CommentID
应该从1开始并递增,对于ProductID = 2
,CommentID
也应该从1开头并递增,依此类推。同时,ProductID
是指向乘积表的外键。
有人能指导我如何存档吗?这是一个好的做法,还是除了制作两个主键之外还有更好的解决方法?
谢谢!
我将使用IDENTITY
列/序列(单个PK(:
CREATE TABLE comments(comment_id INT IDENTITY(1,1) PRIMARY KEY,
product_id INT REFERENCES Product(product_id),
some_text VARCHAR(1000),
-- ...
);
选择:
SELECT *,
ROW_NUMBER() OVER(ORDER BY comment_id) AS rn
-- if you really need consecutive numbers
FROM comments
WHERE product_id = ?