Te paso a modo de resumen lo que tenemos armado en un ERP tratando de marcar algunas tablas satelites por su importancia nada mas.
. Familias . Grupos Esta tabla puede tener una relacion directa a una familia o a un grupo padre, esto te va a permitir que si algun cliente quiere hacer una apertura mas profunda que dividir por familia y grupo, la puedas hacer como quieras (algo asi tiene SAP). Articulos . Aca van campos de los que mencionas en tu modelo, aunque quede a tu criterio, yo pondria todo tipo de costo y precio (ej promedio ponderado, ultima compra... idem con la utilizacion de unidad de medida principal y alternativas por si necesitas hacer conversiones (ej. cajas, botellas). . Movimientos de stock Aca basicamente registra todo los datos necesarios que se necesitan para hacer entradas / salidas (y cambios de depositos ) que no son mas que una salida de un deposito y una entrada al otro en forma atomica. . Historico de stock Todo lo necesario para tener las cantidades de cada producto a fecha. . Vista materializada con las cantidades actuales. Hay lugares donde te piden mas ampliacion respecto a los datos. Ej. cuando se importa /exporta a otro pais te piden datos como lote, despacho, fecha de vencimiento, pais de origen, etc. ..... tenes que ver que hacer cuando los productos se vencen..... (en general se decide con el cliente) ej. hacerle un proceso batch. ....y respecto a eso de hacer siempre un insert, yo en tu lugar si es que lo decis para tener una suerte de auditoria completa, pondria un _his de cada una de las tablas que tenga un trigger en la tabla origen que las vaya alimentando. Si mas o menos se entiende lo que quise expresar y consideras que te sirve, si queres te paso por privado el modelo de datos basico. saludos. El mar, 12-07-2016 a las 18:57 +0000, Alberto Cuevas escribió: > Hola a todos, en los siguientes puentos detallo lo que requiero: > > > 1 - Tengo en mi tabla PRODUCTOS los campos: > > CAN_INCIAL = Stock Inicial > CAN_ACTUAL = Stock Actual, que se va actualizando a medida que se se > hacen compras o ventas. > > Esto me ha servido, pero es porque muy pocas personas están conectadas > a la Base de Datos, no habrá muchos conflictos. Pero si puede haber > miles de personas conectadas (vender por Internet, un producto que > tiene mucha demanda, por ejemplo) allí el asunto cambia ya que al > hacer UPDATE al campo CAN_ACTUAL de la tabla PRODUCTOS con miles, > millones de registros. > > > 2. Pienso estructurar mi tabla PRODUCTOS quitando los campos > CAN_INCIAL y CAN_ACTUAL quedando de esta manera: > > IDE_PRODUCTO = Identificador de tabla > IDE_EMPRESA = Identificador de tabla empresa > IDE_SUCUSAL = Identificador de tabla sucursal > IDE_FAMILIA = Identificador de tabla familia > IDE_CLASE = Identificador de tabla clase > IDE_SUBCLASE = Identificador de tabla subclase > IDE_MARCA = Identificador de tabla marca > IDE_UNIDAD = Identificador de tabla unidad de medida > COD_BARRA = Codigo de barra de producto > NOM_PRODUCTO = Nombre de producto > PRE_UNITARIO = Precio Unitario de producto > TXT_DETALLE = Descripción o detalle de producto > EST_PRODUCTO = Estado de producto V=Vigente A=Anulado > USU_REGISTRO = Usuario de registro > PC_REGISTRO = PC de registro > FEC_REGISTRO = Fecha de registro > USU_MODIFICO = Usuario de modificacion > PC_MODIFICO = PC de modificacion > FEC_MODIFICO = Fecha de modificacion > > He creado 2 tablas. Estructuradas de la siguiente forma: > > SALDOS_PRODUCTOS_CAB > > IDE_SALDO = Identificador de tabla > IDE_EMPRESA = Identificador de tabla empresa > IDE_SUCUSAL = Identificador de tabla sucursal > IDE_ALMACEN = Identificador de tabla almacen > IDE_PRODUCTO = Identificador de tabla producto > CNT_INICIAL = Cantidad de Stock inicial > FEC_REGISTRO = Fecha de registro > > SALDOS_PRODUCTOS_DET > > IDE_SALDO_DET = Identificador de tabla > IDE_EMPRESA = Identificador de tabla empresa > IDE_SUCUSAL = Identificador de tabla sucursal > IDE_ALMACEN = Identificador de tabla almacen > ID_SAL BIGINT = Identificador de tabla SALDOS_PRODUCTOS_CAB > CAN_ENTRADA = Cantidad de Entrada > CAN_SALIDA = Cantidad de Salida > FEC_REGISTRO = Fecha de registro > > SALDOS_PRODUCTOS_CAB = Cabecera de los saldos de los productos. En > esta tabla solamente se realizara INSERT, jamás un UPDATE, salvo que > el saldo inicial o la fecha inicial estuvieran incorrectos, pero no > debería ocurrir si se hizo todo bien. > > SALDOS_PRODUCTOS_DET = Se registrara las entredas y salidas del > producto. En esta tabla también solamente se realizan INSERT, jamás un > UPDATE. > > > 3. Es buena la idea que quiero implementar? > > > 4. Según su experiencia, que me sugieren o como lo trabajan? > > > Muchas gracias por su tiempo. > > > Saludos. > -- Carlos Enrique Perez SYSWARP - SRL - Direccion