ISBN号作为主键,现在我想非书本的东西添加到数据库 - 我应该迁移到EAN?

StackOverflow https://stackoverflow.com/questions/2610000

我建立库存数据库,其中ISBN号码的各项的主键。这一阵子真是棒极了的项目是书。现在我想添加非书。一些非书籍有EANS或一系列ISSN,有的没有。

这是一个在PostgreSQL的Django的应用程序的前端和JSON API,再加上管理几支蟒蛇命令行工具。有问题的项目大多是书籍和艺术家版画,其中有些是自费出版。

什么是关于使用ISBN号作为主键很好的是,在关系完整性的顶部,你会得到很多方便的工具,用于验证的ISBN,自动查找书上的项目遗漏或其他信息,等等,其中很多我”已经采取的优势。一些这样的工具是现成的现货(PyISBN,PyAWS等)和一些手卷 - 我试图让所有这些部分尼斯和去,但你知道事情如何才能获得

我无法在网上找到任何关于“私人的ISBN”或“自分配的ISBN”但是这是诸如此类的事情,我感兴趣的是做。我怀疑这就是我看中的,因为已经有上ISBN号明显运行。

我应该重新装备家居EAN编号,或ISBN的迁移关闭如通用主键?如果任何人有与这些系统工作的经验,我很想听到它,你的建议是值得欢迎的。

有帮助吗?

解决方案

如果您正在使用ISBN-10,那么你绝对应该迁移到别的东西,因为这些都已经过时。您可以轻松地ISBN-10,并将其转化ISBN-13S(见维基百科),其我认为是EAN兼容(再次,见维基百科),但作为the_lotus暗示,它可能最好有某种自动递增的整数,没有外部的含义主键和索引然后对EAN / ISBN /等

其他提示

我不知道postgres的但通常ISBM将是唯一的索引关键字,但不是主要的。最好是有一个整数作为主/外键。这样,你只需要添加一个新的领域EAN / ISSN为空。

我同意the_lotus,尤其是因为ISBN是主键的差的选择

数据明智的,它可能不是唯一的足够的。如果群集,这是相当宽和非数字

实施例

有一个简单的解决方案(虽然可以说无论是好的)将使用(ISBN,标题)或(ISBN,作者),这应该几乎保证唯一性。思想是很大,但实用性也用作一个目的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top