我有下表:
Book_Name Author Edition Year
DB_fundamentals Navathe 4 2004
DB_fundamentals Elmasri 4 2004
DB_fundamentals Elmasri 5 2007
DB_fundamentals Navathe 5 2007
我必须在不知情的情况下确定可能的候选键。显然是 {Book_Name, Author, Edition}。从我教授的解决方案来看,这是正确的。但我会更进一步说 {Book_Name, Author, Year} 也是正确的。但在这方面,他表示“我们应该考虑到一些书籍可能有一个发行周期,导致在给定年份出现多个版本。”但是,为什么有人(如他所说,来自“常识”)在同一年(或根本)发行两本或更多同名和同版的书?
大家怎么看这件事?我不明白。
最佳答案
图书版本可能会唯一标识正在发行的图书。 year
大概是发布的年份。
如果数据表示“哪些书从我们的仓库运出”,您的解释就是正确的。在这种情况下,一个版本可能会在多年后发布。
教授显然在想“出版了什么版本的书”。
换句话说,在不知道表格用途的情况下,您无法真正指定。有时目的从数据中“显而易见”,但不一定。
关于database - 通过常识确定候选键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54619179/