微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 在数据库中使用ID

数据库中创建新表时,使用id的重要性是什么.出于我们的目的,我们在每个字段中使用唯一的用户名和电子邮件,以将信息与唯一的用户名或电子邮件相匹配.那么id的用途是什么?

另外,长度/值字段是什么?新的.

谢谢一堆!

解决方法:

正如其他人所指出的,记录有两种类型的键:自然键和代理(人工)键.那么,两个主要问题是:您是否需要使用代理键,如果是,那该代理键应该是什么?

关于第一个问题:如果您没有有效的natural key用作桌面上的primary key,则只需使用surrogate key.所有理智的数据库系统都支持’ON UPDATE CASCADE‘子句,这意味着如果您正在使用恰好更改的自然键,则更改将传播到声明为引用它的所有内容.当然,如果您的数据库系统不支持foreign keys,那么您最好的选择是使用代理键,如果只是为了解决数据库系统中缺少的功能(并且代理键将使您的数据库更容易一致性检查光那个事实).也就是说,如果您正在设计一个具有高正常运行时间和高稳健性要求的应用程序,请选择能够正确识别外键的数据库实现,否则您很可能会发现数据完整性错误将在开发后期(甚至是维护中)发现并且您将必须编写实用程序,以检查您的数据在各种故障模式下的一致性.

对于第二个问题:如果使用代理键,特别是如果您正在解决数据库系统的缺陷,则应始终将其视为不可变且全局唯一.总是.这将在以后的许多情况下提供帮助:公司可以合并(和拆分),数据库可以合并(和拆分),并且当数据库被设计为能够导致问题时,可能会发生大约一百万个其他情况如果代理键不是全局唯一的.由于代理键与它们所持有的数据完全无关(它们与表中的其他字段没有任何关系,除了你赋予它的人工字段),这是最好的方式.由于这些原因,当我必须使用代理键时,我使用UUID(基本上是128位整数,但不是增量).现在,您不必担心在发生意外事件时重新编号记录编号和引用. (是的,它确实减慢了速度,特别是如果你的服务器在32位平台上运行.但是如果你需要处理更多的负载,更好地分配负载—不要因为速度而牺牲完整性,当你’重新处理重要数据!)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐