对不起,我是SQL的新手,我需要有关sql关系表的帮助。
我需要在关系表中插入查询。
在我的程序中,我有一本书,这本书有很多类别。
我是否应该为此建立一对多或多对多的关系?
以及如何执行插入命令以将书添加到表中。 我尝试做某事,但我不知道它的正确与否。
tblBook:BookID,BookName,CategoryID
tblCat:CatID,CatName,
我创建外键
tblCat.CatID -> tblBook.CatID
就是这样。我需要第三张桌子吗?还是足够?
那我不明白如何将许多类别插入书桌?
你能帮我吗?感谢您的建议。
答案 0 :(得分:1)
您必须使用多对多关系,因为一本书可以具有不同的类别,而一本书可以用于不同的书籍。
您需要3张桌子:
tblBook:BookID,BookName
tblCat:CatID,CatName
tblRelationBookCat:BookID,CatID
要插入,您必须:
在您的tblBook中添加一本书
INSERT INTO tblBook(BookID, BookName) VALUES(1, 'Star-Wars');
在tblCat中添加类别
INSERT INTO tblCat(CatID, CatName) VALUES(1, 'Sci-Fi');
在您的tblRelationBookCat中添加关系
INSERT INTO tblRelationBookCat(BookID, CatID) VALUES(1,1);
答案 1 :(得分:0)
简单来说,您与两个表建立了关系。您还应该建立一对多关系。可以,不需要创建第三个表。在插入时,您需要类别表上的行。因为,在逻辑上在书本表上添加具有外键值的行时,必须在类别表的主键上添加一个存在的类别ID。
示例:
tblCat | tblBook
-------------- | ---------
CatID CatName | BookID BookName CategoryID
1 Sci-Fi | 1 Star-Wars 1
2 Adventure | 2 Witcher 2
| 3 Romeo & Juliet 3 (???)
SQL查询:
INSERT INTO tblBook(BookName, CategoryID) VALUES('Star-Wars',1);