电子商务系统中 order表中的 order_id 和order_sn的区别
order_sn是订单编号
从我们代码实现上来说 有order_id 就够了 那order_sn存在的意义是啥?
为了前台展示订单信息的时候用? 不展示订单id安全点?
order_sn 的内容问题,有的是时间加自增长位 还有就是规定一串数字加自增长位
对了 我们现在系统的order给order_sn加了索引
回复内容:
order_id 是ID主键
order_sn是订单编号
从我们代码实现上来说 有order_id 就够了 那order_sn存在的意义是啥?
为了前台展示订单信息的时候用? 不展示订单id安全点?
order_sn 的内容问题,有的是时间加自增长位 还有就是规定一串数字加自增长位
对了 我们现在系统的order给order_sn加了索引
如LS所说,所以id是自增的话,这个是不适合暴露出来的
同时,后期扩展的话,可能会多台数据库,这个id可能都会出现重复的,
sn一般是自己的逻辑运算出来的,所以不会出现这个问题
你会对外暴露你们的自增的order_id吗?公司内部机密的东西
没什么区别,一种自认为安全的处理而已,就像user有id和username,两者除了外观不同外实际上是等价的。非要说区别的话就是一个是顺序的,另一个是无序的,所以有的人认为无序的更安全。
order_id是自增长;order_sn俗称订单号,订单表里唯一值;
一般作用:
在暴露情况,订单号会比订单id更适合展示给用户,相比而言也会更直观好记
安全考虑。订单号会比订单id相对更安全,毕竟id是自增长,有规律
报表:一般财务,运营,在做统计的时候,订单号会更利于统计
后期数据维护及转移,当牵涉多个表关联的时候,订单号毕竟唯一;订单id自增长,如后期转移数据,id可能会因此变化。但订单号不变化
订单id是给外部用的,有规律的id会暴漏一些机密信息。如一天的订单量,别人的订单号等。你总不想你的成交量被人直接看到吧?id是主键,自增长,是给数据库用的。
推荐阅读
-
sqlserver中delete、update中使用表别名和oracle的区别
-
sqlserver中delete、update中使用表别名和oracle的区别
-
ubuntu系统中/etc/rc.local和/etc/init.d/rc.local的区别详解
-
Oracle中sys和system用户、系统权限和角色的区别
-
苹果Mac系统中的清倒废纸篓和安全清倒废纸篓有什么区别?
-
sql中 order by 和 group by的区别
-
ubuntu系统中/etc/rc.local和/etc/init.d/rc.local的区别详解
-
解析Linux系统中bashrc和profile文件的作用区别
-
Oracle中sys和system用户、系统权限和角色的区别
-
mysql中information_schema(和sql中的系统表类似)_MySQL