唯一ID生成

Fli*_*Off 1 database oracle unique-key

如何使用以下属性生成长度最多为12个字符的唯一密钥:姓名,父亲姓名,母亲姓名,出生日期,出生地.

提前致谢 :)

Gal*_*mon 8

唯一标识符的主要且实际上唯一的属性是它是唯一的(在考虑范围内,是表,模式或全局).将任何"真实世界"的值合并到这样的id中是没有意义的.

如果您确定这些属性唯一地描述了一个人,那么您应该对您提到的属性创建一个唯一约束.这种属性组合形成了表格的"自然键".

唯一ID是一个"代理键",一个方便的句柄,使您不必在与该表的连接中指定自然键的所有列.如何获取唯一ID取决于数据库.例如,在Oracle中,您可以将序列与插入触发器结合使用.

对自然键的唯一约束将阻止您将同一个人插入两次,但您应该首先检查该表以查看该人是否已存在.如果是,请使用已从该点分配的ID.当然,您可以将此组合到一个过程中,在该过程中,您可以为其提供字段,它将返回ID,隐藏查找的行为,或者如果是新的则创建它,然后返回新ID.


Cad*_*oux 6

即使这些列可能不够独特,并且因为一个人的名字可以改变(通过婚姻,选择等),我通常不会使用它来生成唯一的密钥.

我通常使用代理,如自动编号/身份/序列或UUID/GUID,具体取决于要求.