Cita:
Iniciado por rcastellanossuarez Buenos dias:
Tengo la siguiente duda , tengo que implementar campos autoincrementables en mi aplicación y no se si definir una secuencia por cada tabla o una secuencia que sea utilizada por todas las tablas, no se si usar una sola pueda tener impacto en el rendimiento de la aplicación o traerme algún otro problema, por otra parte serían muchas tablas y por tanto serían muchas secuencias si hago una para cada una
gracias de antemano espero recomendaciones
Partamos de la base que una secuencia es un objeto que precisamente se usa coo identificador autoincremental único. Esto significa que es muy común usarlo como clave primaria numérica de una única tabla, gracias a su unicidad.
No existe un impedimento concreto para usar la misma secuencia en diferentes tablas, pero resulta algo medio extraño por el uso original que se le da.
Plantear usar una misma seceuncia para diferentes tablas tiene al menos una consecuencia bastante rara: No existirá secuenciación incremental en la misma tabla, ya que diferentes números generados en la secuencia terminarán siendo el ID de diferentes tablas.
Esto puede no generar problemas reales, pero además puede generar enormes "huecos" de numeración en una misma tabla (menos usada), mientras que en otras (más usadas), las numeraciones tenderá a ser mas consecutivas.
Este tipo de cosas puede generar problemas si la secuencialidad de los números es importante para algún proceso, por ejemplo. En esos casos no parece ser una buena idea.
Ahora bien, a mi juicio es más "fiaca" de DBA que una opción razonable.
Si es la cantidad de secuencias la que te preocupa, eso se resuelve con una buena documentación de desarrollo, y buenos patrones mnemotecnicos para recordar a qué pertenece cada secuencia.
Por mi parte, trabajo con una base en Oracle que cuenta con más de 900 tablas, donde casi todas (más del 80%) poseen secuencias asignadas. E incluso tengo tablas donde hay más de dos secuencias asignadas a ella, producto de necesidades del sistema.
Y lo que puedo asegurarte es que no nos traen ningún tipo de problemas...