设置两个主键,但为每个第一个主键值重置第二个主键-SQL Server



我正试图为产品制作一个评论部分。我正在为Comments表设置两个主键,即CommentIDProductID。但我想对主键做的事情如下:对于每个ProductIDCommentID应该从头开始计数。所以对于ProductID = 1CommentID应该从1开始并递增,对于ProductID = 2CommentID也应该从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 = ?

最新更新