作者回复: 可以这样理解,不过,如果 BOOK_ID 和 CATEGORY_ID 组成联合主键,那么这个 BOOK_NAME 依赖于另外的那半个“部分主键” BOOK_ID
作者回复: 就是通过这两级联合起来构成主键。例子的话,你可以看一下 https://aws.amazon.com/blogs/database/using-sort-keys-to-organize-data-in-amazon-dynamodb/ 这里面有几个例子,比如 deviceId 是 partitionKey,而 timestamp 是 sortKey,可以存在 partitionKey 相同而 sortKey 不同的数据。
作者回复: 👍,如果没有特殊原因,借阅表和归还表可以合并。
作者回复: 👍,不过关于其中的 2) 拆分得不完整:把 borrow_date、return_date 可以拆到另外一张借书关系表里面去,因为对于同一本书,book_name 这样的信息不应该出现超过一次:
图书信息表:
book_id / book_name
借书关系表:
book_id / borrower_id / borrow_date / return_date