Su caso de uso claramente requiere el uso de GUID (identificador único global).
Los GUID típicos se ven así: {3F2504E0-4F89-11D3-9A0C-0305E82C3301}
Sin embargo, lo que las empresas hacen en la práctica es usar un código numérico de 6 dígitos / 8 dígitos / 16 dígitos.
- ¿Cómo entiende un algoritmo de aprendizaje por refuerzo que es castigado?
- ¿Cuáles son los algoritmos de búsqueda paralelos más importantes? ¿Qué ventajas tienen sobre los algoritmos de búsqueda clásicos?
- ¿Los árboles binarios / árboles de búsqueda binaria se usan realmente en la práctica o se usan principalmente con fines didácticos?
- ¿Cuál es la intuición detrás del algoritmo de clasificación rápida de múltiples claves?
- Quiero aprender más sobre algoritmos, pero no sé por dónde empezar. ¿Me puede dar algunas instrucciones o consejos? Gracias.
Estas son las propiedades que puede desear que tenga su cupón:
Único
No se genera ningún cupón dos veces, de modo que una vez que se utiliza el cupón, caduca y no se puede volver a usar (para evitar la manipulación por el mismo usuario). Además, para evitar inconvenientes a un futuro cliente al que se le pueda asignar el mismo código.
Fácil de leer / escribir
Por lo general, la mayoría de las empresas usan código numérico (si es largo) para evitar errores al escribir el código o incluso leerlo.
Fácil de generar
Esto es lo más importante para ti. Las estrategias que se usan con frecuencia son algunos prefijos, seguidos de Timestamp (en formato numérico – 131216 – 16 de diciembre de 2013) y finalmente por algún número aleatorio (últimos 4-6 dígitos – precaución, esto puede causar colisiones).
Entonces, una estrategia que he usado (con gran éxito y menos colisiones):
Código de cupón de 18 dígitos:
Prefijo – TX o similar (2 caracteres)
Marca de tiempo – YYMMDDHHMMSS (12 caracteres)
Número aleatorio: 1001 y 9999 (4 caracteres)
Ejemplo: TX1312161301239999 (TX | 131216130123 | 9999)
Por lo tanto, las colisiones ahora se limitan solo a los cupones generados en el mismo segundo.
Incluso esto puede evitarse creando un grupo de números predefinidos entre 1001 y 9999 (ordenados / barajados aleatoriamente) y regenerados cada pocos segundos para evitar colisiones.
Los últimos 4 dígitos pueden asignarse en serie con la garantía de evitar colisiones.