在设计表时,我的同事在这里说我应该避免使用标识列,因为它特定于SQL Server和MS Access,但我与他的观点不同,因为它使我的编码更简单.
我应该使用标识栏吗?如果不是,从应用程序代码创建标识列的最佳方法是什么?
您无法将应用程序与数据库供应商完全分离.如果这样做,您将无法利用数据库为您提供的任何功能.
我会说使用标识列.如果转移到Oracle(例如),则可以使用序列.几乎没有什么大变化.
我不知道你正在使用什么技术,但有一点可以帮助我使用Hibernate或iBATIS这样的工具(我认为它们都可用于Java和.NET),它们将你与数据库实现区分开来细节.然后,如果您更改数据库供应商,则无需更改应用程序代码,只需更改配置.(理论上,至少!)
使用标识列!
它确实将您的"应用逻辑"与"业务逻辑"分开.
假设您使用"email"作为主键(这在"业务逻辑"方面确实有意义).当该电子邮件不再存在且您的用户想要编辑您的电子邮件时,您会遇到麻烦.