我正在创建一个 API,假设我的数据库有 authors
和 books
表。
作者和书籍来自外部服务 API,他们在该外部服务上有自己的 id
(我需要跟踪它以供将来的外部调用)。
哪种情况最适合我的数据库?
场景A
authors -id (PK auto increment) -id_author_from_external -name books -id (PK auto increment) -id_book_from_external -id_author (foreign key) -name
场景B
authors -id_author_from_external (PK) -name books -id_book_from_external (PK) -id_author_from_external (foreign key) -name
我实际上认为 scenario A
应该没问题,但后来意识到,当我插入书籍时,我需要使用 id_author_from_external
从我的数据库中查找作者 id
。
你有什么想法?
如果外部服务 API 是由您或您的团队编写的,或者您 100% 确定不会有任何重复或数据丢失(数据删除)的可能性,我会说选择 B。 p>
但是,如果有可能出现其中任何一种情况,最好保留自己的 ID。这将是您的场景 A。
无论如何,我会选择场景 A。不具有任何外部依赖性。