Cada orden en mi tienda en línea tiene un número de orden de usuario. Me pregunto cuál es la mejor forma de generarlos. Los criterios incluyen:¿La mejor manera de generar números de pedido para una tienda en línea?
- corto
- fácil decir a través del teléfono (por ejemplo, "m" y "n" son ambiguos)
- único
- suma de comprobación
- (exageración Útil??) Editar: No revela cuántos pedidos totales ha habido (un cliente puede encontrar que es inquietante hacer su 3er pedido)
Rig Ahora estoy usando el siguiente método (sin suma de comprobación):
def generate_number
possible_values = 'abfhijlqrstuxy'.upcase.split('') | '123456789'.split('')
record = true
while record
random = Array.new(5){possible_values[rand(possible_values.size)]}.join
record = Order.find(:first, :conditions => ["number = ?", random])
end
self.number = random
end
Eso estaría bien por un tiempo, pero después de que hay un montón (una cantidad real, real) de Pedidos, las posibilidades de generar una ID única se reducen progresivamente ... Creo que enviaré una respuesta para ayudar fuera ... – nilamo
el cliente podría pensar que los números de pedido son exclusivos de él/ella, así que no me preocuparía. Es una tontería preocuparse por IMO – Tim