主键列的数字或字符

Mik*_*yev 0 oracle integer char primary-key

我正在建立一个非常重要的国家机构的数据库.到目前为止,对于主键列我有时使用数字,特别是int32或int64,有时我使用了char但仍然只存储了数字字符.由于这是一项非常关键的任务,我必须使其兼具性能和舒适性.现在我想知道,如果考虑char列中的值仍然是数字字符,那么对于PK列使用数字或字符会有什么不同.

PS你可能想知道如果我总是存储数字字符,使用char是什么意思.原因是PK列由多个部分组成,如国家3个字符,省3个字符,城市3个字符和一个人6个字符.除此之外,我可以在这些列上进行字符串操作,而不必担心显式转换.(我知道Oracle中存在隐式转换但不鼓励依赖它.)

Ton*_*son 6

也不是这样.您的主键应该是代理.Int或big int,Guid如果缩放将是一个问题.那么你应该把国家,省,城市和人作为一个独特的复合键."智能"数字很少是一个好主意.