Ver Mensaje Individual
  #1  
Antiguo 09-02-2011
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Reputación: 21
AzidRain Va camino a la fama
¿Que enfoque de programación utilizarias?

Aquí en el changarro tenemos nos hemos dado cuenta que de repente al tener 2 o 3 proyectos en marcha a la vez, asignados a diferentes programadores, salen a relucir diferentes prácticas y costumbres. Si bien hay una guía de estilo más o menos definida al final invariablemente cada quien le pone su toque.

Hace unos días nos reunimos para unificar criterios respecto a algunas funciones y tareas que a fuerza de ser repetitivas o utilizarse mucho en casi todos los proyectos requieren ponernos de acuerdo. Una de estas tareas es la siguiente:

Sea una tabla "facturas" que contiene n registros. Sea otra tabla "recibos" que contiene también n registros y a su vez una tabla "det_recibos" que contiene los números de factura incluidos en el recibo. Desde el punto de vista de diseño, un recibo es un conjunto de facturas que se llevan o traen en algún momento dado y que posteriormente regresan a su lugar. Un recibo permanece "activo" o "abierto" mientras no se le indique lo contrario. Una factura solo puede ser incluida en un recibo que esté abierto siempre y cuando dicha factura no esté ya incluída en otro recibo abierto. Es decir, solo puede aparecer en un recibo abierto a la vez.

Basado en las reglas anteriores vemos que hay dos enfoques ya hablando de la programación de las tablas.

1.- Incluir un campo "num_recibo" en la tabla "facturas" para colocar ahí el número del recibo(abierto) en el que dicha factura está incluida, al cerrar el recibo se borra el mismo de las facturas. De esta forma basta la tabla de facturas para consultar cuales se encuentran incluidas en determinado recibo

2.- No incluir el campo y hacer las consultas utilizando las 3 tablas mediante joins para determinar si una factura ya se encuentra en x recibo.


Personalmente me gusta más el enfoque 2 ya que no hay que hacer modificaciones a la tabla "facturas" pero el enfoque 1 también funciona aunque implica más operaciones al momento de crear un recibo.

¿Ustedes que opinan?, ¿Hay alguna otra alternativa?, ¿Ustedes como lo hacen?
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita