我建立了一个库存数据库,其中 ISBN 号是项目的主键。由于这些物品是书籍,因此这在一段时间内效果很好。现在我想添加非书籍。有些非书籍有 EAN 或 ISSN,有些则没有。
它在 PostgreSQL 中,带有用于前端的 django 应用程序和 JSON api,以及一些用于管理的支持 python 命令行工具。有问题的物品主要是书籍和艺术家版画,其中一些是自行出版的。
使用 ISBN 作为主键的好处在于,除了关系完整性之外,您还可以获得许多方便的实用程序来验证 ISBN、自动查找有关图书项目的缺失或附加信息等,其中许多我已经利用了. 有些这样的工具是现成的(PyISBN、PyAWS 等),有些是手工制作的——我试图让所有这些部分保持良好和分离,但你知道事情会如何发展。
我在网上找不到任何关于“私人 ISBN”或“自分配 ISBN”的信息,但这是我感兴趣的事情。我怀疑这就是我会解决的问题,因为 ISBN 号码已经出现了明显的竞争。
我应该为 EAN 号码重新组装所有东西,还是一般将 ISBN 作为主键迁移?如果有人对使用这些系统有任何经验,我很想听听,非常欢迎您的建议。