我试图找出一种方法来设计我的 SQL Azure 数据库。有很多关于你的主键应该是什么(int 与 guid)以及两种方法的优缺点的信息,所以我知道那里正在进行的战争:)
但是,我想通过在我的表中添加以下三列来应用两全其美:
- 内部标识
- int 类型的 IDENTITY
- 定义为聚集索引
- 用于连接
- 数据库生成的默认值
- 仅在表中唯一
- 仅在内部使用
- 永远无法改变
- 外部标识
- 指南
- 客户端(或域)生成的默认值
- 全球唯一
- 内用外用。
- 永远无法改变
- 网址标题
- 一个字符串
- 由域生成
- 仅在表中唯一
- 公共 url 中使用的实体的用户友好表示
- 可以改变(但最好不要改变)
通过这样做,由于 InternalId,它将具有整数主键的性能,但由于 ExternalId,它仍然足够灵活。
我不是数据库专家,远非如此,所以我想听听您的意见,这是否可行,或者只是荒谬可笑?