关于接口查询条件使用id而不使用其他唯一字段的思考
2025-01-07 16:38:30
最近前端问了我一个问题: 为什么某个接口一定要用id作为查询条件,而不是用其他的唯一字段。前端之所以这么问是因为他可以直接获取到那个唯一字段,不需要做其他的操作再去获取id。
我给的回答是查询一般都是使用id,因为id肯定是唯一的。但这解释不了为什么不用其他的唯一字段。
所以聊完之后我还是思考了一下,并且搜索了下得出结论:
- 唯一性 id一般情况下是作为主键,是肯定唯一的,与业务无关,是不会变动的。而其他字段与业务相关,但前可能是唯一的,但如果未来因为业务变动,有可能变非唯一;
- 性能 id作为主键,有主键索引,速度会更快。且一般是数字类型,索引速度比字符串类型更快;
还有一些其他原因:比如id不可被修改等。