Re: [PHP-ES] Hola amigos, tengo una duda con PHP + MYSQL

[email protected] (Ricardo Martinez)
Newsgroups php.general.es
Message-ID <[email protected]>
hola!

Con las CLAVES FORANEAS, consigues que no sé te queden datos "colgando" o
"perdidos" . Porque las referencias entre distintas tablas, van como
"cosidos"  y muchas cosas se tienen que hacer con la programación en php,
pasan a ser tratadas por mysql.

El problema que estás describiendo, aún sin usar claves foraneas, no te
debería de pasar.

Tal y como te han comentado, si creas las tablas con un id primario (
primary ) y autoincrement, cada factura nueva en firme que generés, debería
de ser seguida y correlativa.
Ten en cuenta que solo puedes tener un campo con la propieda autoincrement
por cada tabla. Y que ese campo obligatoriamente debe de ser primary.

Yo no permitiría, eliminar facturas en un principio, ya que las facturas
siempre tienen que ir correlativas, 1,2,3,4,5,6 y no puede faltar un número,
si eso pasa puede traer problemas fiscales.

Cuando soluciones esto, que básicamente es un problema de diseño de la base
datos, el siguiente problema que vas a tener es la gestión de los décimales,
con las operaciones ariméticas. Hay funciones en PHP para tratar eso.

Un saludo y ánimo!!!






2010/7/24 Carlos Sura <[email protected]>

>
>
> Hola,
> Efectivamente, yo tengo para las tablas, tablas temporales, por ejemplo:
>
> ordencompra
> octmp
> facturacp
> factuptmp
>
> Entonces, asi, si se elimina, tengo un campo llamado "borrado" con CHAR1
> Y asi, si se actualiza o se genera sin quedar el hueco vacio.
>
> Lo que yo exactamente veia es que, cada vez que genero una nueva me sale:
> 000080
> cuando genero otra 00033
>
> Y otra 00055
>
> Son numeros completamente al azar, todavia no he podido leer los articulos
> que me pusieron sobre integridad referencial, pero asumo que ese sera el
> problema.
>
> Mis tablas estan con MyISAM
>
>
> Saludos a todos y gracias por sus respuestas; me han servido de mucho las
> respuestas.
>
> Exitos,
> Carlos Sura
>
>
>
>
>
> > Date: Sat, 24 Jul 2010 10:28:09 +0200
> > From: [email protected]
> > To: [email protected]
> > CC: [email protected]; [email protected]; [email protected]
> > Subject: Re: [PHP-ES] Hola amigos, tengo una duda con PHP + MYSQL
> >
> > Hola a todos!
> >
> >  Yo creo que el problema lo tiene, en el diseño, tiene una tabla en la
> que
> > va generando "ordenes" y despues esas ordenes se convierten en facturas,
> > pero que pasa si esa orden no es generada ¿? o borrada o anulada ¿? pues
> que
> > tiene un hueco un vacio.
> >
> >  Para ello necesitaria una tabla temporal y otra a nivel de historico con
> > las facturas en firme.
> >
> > Un saludo!
> >
> >
> > 2010/7/24 hahmael <[email protected]>
> >
> > > No tienes que llenarlo con ceros, simplemente no haces un llamado al
> > > momento
> > > de hacer el Insert, ademas de que sea Auto_increment que sea un campo
> NOT
> > > NULL y buena candidato para que sea la llave Primaria PK..
> > >
> > > supongamos tienes la tabla 'facturas' con los campos:
> > >
> > > id_factura(int)...
> > > name_customer(char 0)
> > >
> > > el insert podría ser de dos formas..
> > >
> > > 1. INSERT INTO facturas (id_factura, name_customer) VALUES (NULL,
> 'carlos
> > > pepito')
> > > 2. INSERT INTO facturas (name_customer) VALUES ('carlos pepito')
> > >
> > > Saludo.
> > >
> > >
> > > 2010/7/23 Carlos Sura <[email protected]>
> > >
> > > > Hola a todos.
> > > >
> > > > Agradezco mucho sus recomendaciones, la verdad es que si estoy
> trabajando
> > > > con la base de datos asi, y el id tiene auto incremento y lleno los
> > > espacios
> > > > vacios con ceros, pero de igual forma, no me los crea en orden.
> > > >
> > > > Voy a revisar bien lo de integridad referencial y voy a probar de
> nuevo.
> > > >
> > > > Exitos,
> > > > Carlos Sura
> > > >
> > > > -----Original Message-----
> > > > From: Ivan Rico [mailto:[email protected]]
> > > > Sent: viernes, 23 de julio de 2010 05:14 p.m.
> > > > To: Ariel Camino
> > > > Cc: [email protected]
> > > > Subject: Re: [PHP-ES] Hola amigos, tengo una duda con PHP + MYSQL
> > > >
> > > > Lo que dice Ariel es lo mejor que puedes hacer, y que pasa cuando
> > > borras?,
> > > > pues realmente no sucede nada, solamente deja de existir ese
> cosecutivo y
> > > no
> > > > se recicla
> > > >
> > > > Si quieres tener el control total con el borrado y creación de
> registros
> > > > has uso de la integridad referencial, es ese tema de las llaves
> foraneas
> > > y
> > > > esta soportada por el motor InnoDB
> > > >
> > > > http://dev.mysql.com/doc/refman/5.0/es/ansi-diff-foreign-keys.html
> > > >
> > > > de hecho yo te diria que usar esto no es una opción sino un requisito
> > > para
> > > > hacer sistemas.
> > > >
> > > > saludos
> > > >
> > > > ----- Mensaje original -----
> > > > De: "Ariel Camino" <[email protected]>
> > > > Para: [email protected]
> > > > Enviados: Viernes, 23 de Julio 2010 17:39:50 GMT -06:00 Guadalajara /
> > > > Ciudad de México / Monterrey
> > > > Asunto: Re: [PHP-ES] Hola amigos, tengo una duda con PHP + MYSQL
> > > >
> > > > Lo mejor es que en la estructura de la tabla utilices un campo con la
> > > > propiedad AUTO_INCREMENT, y le delegues el problema a Mysql:
> > > > http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
> > > >
> > > > Saludos,
> > > > --
> > > > Ariel Camino
> > > >
> > > > --
> > > > PHP Spanish Localization Talk Mailing List (http://www.php.net/)
> > > > To unsubscribe, visit: http://www.php.net/unsub.php
> > > >
> > > >
> > > > --
> > > > PHP Spanish Localization Talk Mailing List (http://www.php.net/)
> > > > To unsubscribe, visit: http://www.php.net/unsub.php
> > > >
> > > >
> > > >
> > > > --
> > > > PHP Spanish Localization Talk Mailing List (http://www.php.net/)
> > > > To unsubscribe, visit: http://www.php.net/unsub.php
> > > >
> > > >
> > >
> > >
> > > --
> > > Agradecido.
> > >
> > > Hahmael Tâher.
> > >
> >
> >
> >
> > --
> > Ricardo
> > _______________________________________________
> > IT Architect
> > website: http://www.rjmc.es
>
> _________________________________________________________________
> http://clk.atdmt.com/UKM/go/197222280/direct/01/
> We want to hear all your funny, exciting and crazy Hotmail stories. Tell us
> now
>



-- 
Ricardo
_______________________________________________
IT Architect
website: http://www.rjmc.es
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.