41得票7回答
Hibernate中的自然标识符是什么?

在阅读Hibernate文档时,我一直看到对自然标识符这个概念的引用。 这是否意味着实体由于其所持有的数据的本质而具有的id? 例如,用户的姓名+密码+年龄+某些内容作为复合标识符使用?

15得票10回答
关于关系型数据库设计的问题 - 采用代理键还是自然键?

哪一个是最佳实践呢,为什么? a) 使用类型表和代理/人工键来处理外键,将用户的类型(user.type)作为外键指向类型表(type.id): b) 使用类型表和自然键来处理外键,将用户的类型(user.type)作为外键指向类型表(type.typeName):

12得票3回答
在 Django 中,是否可以使用自然键作为 GenericForeignKey 的关联键?

我有以下内容:target_content_type = models.ForeignKey(ContentType, related_name='target_content_type') target_object_id = models.PositiveIntegerField() ta...

7得票3回答
通过使用Hibernate的@NaturalId查找实体有什么优势?

使用Hibernate的@NaturalId查找对象有什么优势吗? 我担心的是,Hibernate会执行两个查询来获取使用@NaturalId的对象。 第一次查询只是为了获取id,第二次查询才加载真正的对象。

7得票1回答
一个模型管理器能否访问其模型的元属性(`Meta.unique_together`)?

这是我尝试创建的通用自然键模型管理器。它类似于文档,但它尝试(但不成功)从Meta.unique_together属性中确定自然键字段名称。 class NaturalKeyModelManager(Manager): def get_by_natural_key(self, *a...

7得票1回答
get_by_natural_key和natural_key之间的区别

据我所知,模型管理器的get_by_natural_key方法用于反序列化,而natural_key方法则用于序列化。这是真的吗?如果不是,它们有什么区别? 还有,我们是否总是需要给--natural-foreign和--natural-primary键?是否有任何强制使用自然键进行序列化/...

7得票4回答
自动生成自然键

我正在研究一种将数据库A中的部分数据序列化并在数据库B中反序列化的方法(类似于不同安装之间的保存/恢复),我已经查看了Django的natural keys,以避免由于重复ID而引起的问题。 唯一的问题是我需要为所有模型添加自定义管理器和新方法。是否有一种方法可以让Django通过查看“un...

7得票9回答
用户的唯一标识符

如果我有一个包含一百个用户的表格,通常我会设置一个自增的userID列作为主键。但是如果突然有一百万或五百万个用户,那么这将变得非常困难,因为我希望开始更加分布式,这种情况下自增主键将毫无用处,因为每个节点都会创建相同的主键。 解决方案是使用自然主键吗?我很难想出这些用户的自然主键。问题在于...