我买了deitel java如何编程书。我正在按照他们的一个练习。 在我的程序中,我连接到一个mysql书籍数据库。我能够添加一个新作者,编辑作者,新标题。但是,d)部分让我很困惑。我想改变表并添加外键吗?
以下是本书的练习,您可以看到d)
a) Add a new Author
b) Edit the existing information for an author
c) Add a new title for an author (Remember that the book must have entry in the AuthorISBN table.)
d) Add a new entry in the authorISBN table to link authors with titles.
以下是“toad”中打开的数据库的屏幕截图
如果他们打算写一个sql语句,我会添加一个新的AuthorID,并带有对title的引用吗?
ALTER TABLE AuthorISBN ADD FOREIGN KEY (AuthorID) REFERENCES title (AuthorID);
答案 0 :(得分:0)
你不应该改变桌子。我假设他们已经给你了表格的结构(截图),你应该在练习的所有部分添加新的条目。在d)他们希望您在AuthorISBN表中添加一个条目,以便 Author 和 Title 中的两个条目在逻辑上连接。
AuthorISBN由两个数据字段组成。 AuthorID和ISBN是外键,因此对于AuthorISBN表中的每个条目,必须在表 Authors 中具有相同AuthorID的足够条目以及标题中具有相同ISBN的条目
所以在a)你添加一个作者。 AuthorID会自动递增,因此您必须在插入作者后检索ID。在c)中,您添加了此作者的书籍。但是你怎么知道以后哪位作者写了一本特定的书呢?或者您想要由作者检索所有书籍的列表。这就是为什么你添加d)AuthorISBN的条目。
所以使用JDBC你会做这样的事情:
Statement stmt = connection.createStatement();
String sql = "INSERT INTO AuthorISBN VALUES (" + authorID + ", '" + isbn + "')";
stmt.executeUpdate(sql);