[Php-avanzado] datos tesis

Federico Rafaelli frafaelli en hotmail.com
Mar Dic 30 09:05:56 ART 2008


Leo, gracias por el comentario, la verdad no me di cuenta al momento de armar el esquema de datos que las ordenes de pago(OP) son un comprobante mas, y las tome como otra entidad, me salio asi.Si lo analizamos las OP son un documento interno, no son un documento comercial como una fc, nc, nd, rto, etc... pero para mi esquema lo puedo tomar como un tipo de comprobante mas. Pensandolo ahora, quiza lo haya tomado aparte porque las OP son un poco mas complejas que otro comprobante ya que tienen un estado, retenciones, uno o mas comprobantes involucrados, y uno o mas depositos tambien. 
Ademas para el detalle de cada pago (de cada OP), tengo que tener en cuenta que una OP puede tener mas de un comprobante y que un comprobante puede estar en mas de una OP (ya que existen pagos a cta), necesito una nva tabla para reflejar este detalle, con una relacion de muchos a muchos, creo que este ultimo requisito es el que me complica, ya que los demas los manejo, por ej, en las tablas de retenciones o depositos en vez de tener la referencia "nro_op" tendra el id de comprobante (que sera la OP).
Puedo tomar las OP como un tipo mas de comprobante, pero necesito una sugerencia para manejar el detalle de las mismas, quiza una nva tabla de "pagos" por ej?
 
 
 
 
> From: leonardot en pegasusnet.com.ar> To: php-avanzado en pato2.fi.mdp.edu.ar> Date: Mon, 29 Dec 2008 14:02:23 -0200> Subject: Re: [Php-avanzado] datos tesis> > Hola Federico,> > El lun, 29-12-2008 a las 14:39 +0000, Federico Rafaelli escribió:> > Perdon pero no habia visto la respuesta, gracias por reenviarlo.> > Entonces nada de enum, saco los datos a otra tabla, a mi me parecia lo> > mas correcto tambien (pero por vago no hice otra tabla),> > No es tanto trabajo: el contenido de esas tablas es "setup" del sistema> y no necesitan ABMs ni nada.> > > y tipo de dato mas grande que smallint, calculo que pondre midiunInt.> > int(11) como mínimo o longint...> > > Me comi lo de la orden de pago con la empresa, ya lo arreglo, ahora> > tambien tengo que relacionarla con el cliente, pero esta relacion ya> > se da por el comprobante no?> > A ver... el comprobante tiene un cliente.> Como el cliente tiene una empresa, sabés de qué empresa es el cliente.> Hasta acá está claro.> Ahora la orden de pago no está haciendo referencia ni a un comprobante> ni a un cliente, así que no tenés como saber esa OPago a qué> corresponde.> No la relacionaría a la empresa, porque vía el cliente llegás a ella,> al igual que en el comprobante.> > Una cosa que me pierde es que pensaste en una tabla con un> discriminante para saber qué tipo de comprobante es cada uno, pero las> órdenes de pago no son un tipo más de comprobante, sino que las manejás> aparte. Se vé raro... es mejor usar un criterio y mantenerlo que usar> para una cosa un criterio y para otra tan cercana uno distinto.> Estaría bueno que me justifiques esa decisión así yo la entiendo... y> en la justificación la revaluás.> > > > El mar, 23-12-2008 a las 18:26 +0000, Federico Rafaelli escribió:> > > > Leo te mando las tablas de la tesis de ctas ctes:> > > > > > > > table clientes> > > > > > > > id_cliente(PK) Smallint NOT NULL > > > > id_empresa(FK) Smallint NOT NULL > > > > usr Varchar(20) NOT NULL> > > > password Char(8) NOT NULL > > > > razon_social Varchar(60) NOT NULL> > > > ciut Char(11) NOT NULL > > > > nombre_resp Varchar(35) NOT NULL> > > > apellido_resp Varchar(35) NOT NULL> > > > telefono Varchar(35) NOT NULL> > > > e_mail Varchar(50) > > > > direccion Varchar(60) > > > > > > No uses smallint para claves primarias: es muy chico.> > > > > > > > > > > table empresas> > > > > > > > id_empresa(PK) Smallint NOT NULL > > > > usr Varchar(20) NOT NULL> > > > password Char(8) NOT NULL > > > > razon_social Varchar(60) NOT NULL> > > > ciut Char(11) NOT NULL > > > > nombre_resp Varchar(35) NOT NULL> > > > apellido_resp Varchar(35) NOT NULL> > > > telefono Varchar(35) NOT NULL> > > > e_mail Varchar(50) > > > > direccion Varchar(60) > > > > > > > > > > > > table comprobantes> > > > > > > > id_comprobante(PK) Smallint NOT NULL > > > > sucursal Varchar(4) NOT NULL > > > > nro Varchar(8) NOT NULL > > > > fecha Date NOT NULL > > > > importe Float NOT NULL > > > > id_cliente(FK) Smallint NOT NULL > > > > id_tipoComp(FK) Tinyint NOT NULL > > > > > > Ok. Estás usando el enfoque de una tabla para todos los> > > comprobantes y> > > un campo para discriminar uno de otro.> > > > > > > table tipoComp> > > > > > > > id_tipoComp(PK) Tinyint NOT NULL > > > > descripcion Varchar(20) NOT NULL > > > > > > > > > > > > table ordenesDePago> > > > > > > > nro_op(PK) Smallint NOT NULL> > > > fecha Date NOT NULL > > > > importe Float NOT NULL > > > > estado Enum(pendiente/confirmada) NOT NULL> > > > > > Enum nooo!!! es horrible! No es escalable!> > > Sacá esa descripción a otra tabla. Es fácil, ya que esa tabla no> > > necesita ABM: la das con sus datos cargados junto con el sistema.> > > > > > y cómo sé de qué empresa es la Orden de Pago? O el usuario de tu> > > sistema es una sola empresa???> > Seguimos!> > -- > Leonardo Tadei> leonardot en pegasusnet.com.ar> http://blog.pegasusnet.com.ar> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key> > _______________________________________________> Php-avanzado mailing list> Php-avanzado en pato2.fi.mdp.edu.ar> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
_________________________________________________________________
Enterate todas las novedades del mundo del deporte por MSN.
http://msn.foxsports.com/fslasc 
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/cgi-bin/mailman/private/php-avanzado/attachments/20081230/8a5d2e8a/attachment.htm 


Más información sobre la lista de distribución Php-avanzado