Heredé la tarea de mantener un sitio de comercio electrónico muy mal codificado y estoy trabajando en la refacturación de una gran cantidad del código y tratando de solucionar los errores actuales.¿Hay alguna razón para no usar auto_increment en un índice para una tabla de base de datos?
Cada inserción de base de datos (agregar un artículo al carrito, etc.) comienza con una función grab_new_id que CUENTA el número de filas en la tabla, luego, comenzando con ese número, solicita la base de datos para encontrar un número de índice sin usar. Además de ser terrible en cuanto a rendimiento (hay más de 40,000 filas y los índices se eliminan regularmente, por lo que a veces lleva varios segundos encontrar una nueva identificación) esto se rompe regularmente cuando se realizan dos operaciones simultáneamente, ya que se agregan dos entradas. con números de identificación duplicados.
Esto parece idiota a mí - ¿por qué no usar incremento automático en el campo de índice? Lo probé de ambas formas, y agregar filas a la tabla sin especificar un ID de índice es (obviamente) mucho más rápido. Mi pregunta es: ¿alguien puede pensar en alguna razón por la que el programador original pudo haber hecho esto? ¿Hay alguna escuela de pensamiento en la que el autoincremento se considere de alguna forma mala? ¿Hay bases de datos que no tienen capacidades de auto incremento?
Una vez encontré una función en C# llamada reverseBoolean. Todo lo que hizo fue aceptar un booleano como parámetro y devolver el reverso como resultado. Fue demasiado complicado y simplemente tonto. Todo porque el desarrollador no tenía conocimiento del operador no. – theChrisKent
Una vez vi ejecutar código en cada solicitud hecha a una aplicación web que obliga a todo el tráfico a https si se estableció un indicador en la base de datos. Y pelearía con el manejo automático de IIS en https y crearía un ciclo de redirección infinito. Fueron 2 días de una gran ventaja antes de que supiéramos lo que estaba pasando. – Josh
WTFs FTW! Eso es lo que pensé ... solo quería ver si me estaba perdiendo algo, o si había alguna razón oculta para esta función. – goldenapples