我买了 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 并引用标题吗?
ALTER TABLE AuthorISBN ADD FOREIGN KEY (AuthorID) REFERENCES title (AuthorID);
最佳答案
您不应该更改该表。我假设他们已经为您提供了表格的结构(屏幕截图),并且您应该在练习的所有部分中添加新条目。在 d) 中,他们希望您向 AuthorISBN 表添加一个条目,以便 Author 和 Title 中的两个条目逻辑连接。
AuthorISBN 由两个数据字段组成。 AuthorID 和 ISBN 是外键,因此对于 AuthorISBN 表中的每个条目,Authors 表中必须有一个具有相同 AuthorID 的足够条目,并且在 Titles 表中必须有一个具有相同 ISBN 的条目。
因此,在 a) 中您添加了一位作者。 AuthorID 会自动递增,因此您必须在插入作者后检索 ID。在 c) 中,您添加该作者的一本书。但后来你怎么知道哪位作者写了一本特定的书呢?或者您想检索作者的所有书籍的列表。这就是您在 d) 中添加 AuthorISBN 条目的原因。
所以JDBC你会做这样的事情:
Statement stmt = connection.createStatement();
String sql = "INSERT INTO AuthorISBN VALUES (" + authorID + ", '" + isbn + "')";
stmt.executeUpdate(sql);
关于java - 在表中添加带有链接的新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21974228/