Un saludo a todos
Tengo un programa de produccion y facturacion que estoy pasando de ficheros
isam a mssql, ademas quiero aprovechar el cambio para introducir algunas
mejoras, la mas importante de ellas referente a la gestion de temporadas, me
explico:
La base de datos tiene una serie de tablas ( actualmente mas de 60 ) para
gestionar pedidos, facturas, articulos, control de produccion, etc,. Los
articulos, los pedidos de estos y su produccion y entrega vienen organizados
en temporadas por lo que debo introducir este nuevo dato en la base de datos
y aqui viene el problema.
Hasta ahora mis claves primarias eran las claves naturales de cada tabla,
Atrticulos: CodArticulo, Pedidos: CodPedido, etc.
Con la introduccion de temporadas todo se complica ya que las claves
naturales pasan a ser compuestas, Articulos: CodTemporada+Codarticulo,
Pedidos: CodTemporada+CodPedido, etc, y debo arrastrar estas claves
compuestas a lo largo de toda la aplicacion. por ejemplo en una Lineas de
pedido debo leer un CodArticulo, pero validarlo solo en los articulos de la
Temporada del pedido, etc.
O utilizo claves artificiales incluyendo un campo identity en cada tabla del
tipo NombreTablaID como clave primaria y lo uso en toda la RI de la
aplicacion, aunque esto me obligaria a gestionar dos claves para cada tabla,
una artificial (ID) para enlace con otras tablas y una natural para acceso
de los usuarios a los datos,
Cada solucion tiene sus pros y contras pero una vez me decida por un camino
seria muy dificil volver atras.
Por regla general que metodo es el mas usado.?
Algun consejo o comentario?
Gracias.
Leer las respuestas