我注意到,在向用户提供订单 ID 时,在线商店使用简单的整数并不是标准做法。这是一种安全驱动的做法,还是为了允许更多具有更短字符长度的订单?
如果它是安全驱动的实践,那么生成此类 ID 的最佳方法是什么(考虑到数据库可能使用整数 IDENTITY 作为订单表主键)?
最佳答案
主要是为了让用户无法查看别人的订单。
如果为用户分配的购物车/订单 ID 为 1000,则可以安全地假设之前有 999,之后可能有 1001。
有多种方法可以确保这一点,例如确保用户已登录并且订单属于他们。如果您更容易在内部使用,您可以为主键保留整数标识。
对于面向公众的一方,混淆订单 ID 的一个简单方法是为记录分配一个 GUID。然后,您可以通过 GUID 访问用户订单,而不是从主键访问用户订单。
关于database-design - 电子商务网站是否应该使用混淆的订单 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8497348/