簡體   English   中英

這些表有什么問題?

[英]What is wrong with these tables?

我正在嘗試創建以下兩個表:

CREATE TABLE Game_Reviews(   

PRIMARY KEY(game_review_id, game),
game_review_id int,
game int,
date_posted date,
content varchar(100),
verified_reviewer varchar(20) FOREIGN KEY REFERENCES Verified_Reviewers,
FOREIGN KEY(game) REFERENCES Games
)

CREATE TABLE Game_Review_Comments(

PRIMARY KEY(comment_id, game_review),
comment_id int,
game_review int FOREIGN KEY REFERENCES Game_Reviews,
member varchar(20) FOREIGN KEY REFERENCES Members

)

但我收到一個錯誤消息:

外鍵'FK__Game_Revi__game___2022C2A6'的引用列列表中的列數與引用表'Game_Reviews'中的主鍵的列數不匹配。

盡管我不確定,但我有一種感覺,該錯誤是由於以下事實造成的:當我在第二個表中引用Game_Reviews時,它不知道要使用哪個主鍵。 我怎樣才能解決這個問題?

您面臨的問題全都出現在錯誤消息中:

外鍵'FK__Game_Revi__game___2022C2A6'的引用列列表中的列數與引用表'Game_Reviews'中的主鍵的列數不匹配。

問題在於您的外鍵與主鍵不匹配。 那是因為您在game_reviews中的主鍵包含2個不同的列,而您的外鍵僅包含1個列。

因此,您將必須在Game_Review_Comments中創建一個組合的外鍵,其中包含對game_review_id和game的引用。

雖然從我對表結構的了解來看,我認為您確實應該再次檢查是否真的需要組合主鍵,而不僅僅是將game_review_id作為id(我認為將兩列都作為主鍵沒有任何好處)。

game_review_comments也是如此。 在這里,您還擁有一個組合的主鍵。 因此,您將始終需要2列才能將其引用為外鍵。 而且在這里,我要說的是,您應該重新考慮使其成為1列主鍵,因為將其設為2列(兩個表)對我來說似乎沒有任何好處。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM