Foros del Web » Programando para Internet » PHP »

Integridad de DB

Estas en el tema de Integridad de DB en el foro de PHP en Foros del Web. Hola.Tengo un problema, no se como hacer para mantener la integridad en mi base de datos mysql.Supongamos que debo ingresar un evento, el cual esta ...
  #1 (permalink)  
Antiguo 01/06/2002, 15:55
 
Fecha de Ingreso: mayo-2002
Mensajes: 92
Antigüedad: 15 años, 7 meses
Puntos: 0
Integridad de DB

Hola.Tengo un problema, no se como hacer para mantener la integridad en mi base de datos mysql.Supongamos que debo ingresar un evento, el cual esta relacionado a un usuario por medio de una tabla de relacion.Es decir que para ingresar un evento debo hacer 2 INSERT(uno para el evento mismo, y otro para instanciar la relacion con un usuario existente).
Por alguna razon, podría pasar que el servidor solo realice una transaccion sin por completar la operacion(como resultado de esto podría pasar que exista un evento anonimo).
Mi preguntar es:
¿Como hago para que esto se solucione?
(borrando el evento anonimo)
Pero si este evento estaba relacionado con varias tablas y solo quedo descolgado de una, que hago?

Bueno espero que hayan entendido mi explicación.
Chau.Gracias.
  #2 (permalink)  
Antiguo 01/06/2002, 17:07
Avatar de Aleph  
Fecha de Ingreso: agosto-2001
Ubicación: Kenolandia
Mensajes: 1.061
Antigüedad: 16 años, 3 meses
Puntos: 3
Re: Integridad de DB

No es posible que relaciones el evento con la persona directamente? Sin otra tabla que los relacione?
Te estarias ahorrando ese eventual problema.

Saludos.

<div align="right">Guerrillero del ERF</div><div align="right" style="font-family:Verdana;font-size:10px">Si el saber no es un derecho,<br> seguro será un izquierdo.</div>
  #3 (permalink)  
Antiguo 01/06/2002, 18:28
 
Fecha de Ingreso: mayo-2002
Mensajes: 92
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Integridad de DB

Hola, no es posible porque tengo usuarios registrados que pueden publicar muchos eventos.Y es la tabla de relacion la que me permite saber que eventos corresponden a cada ususario.
Pero mi problema va mas halla de eso.Mi problema es que no se como cancelar una serie de transacciones en caso que de la ultima no se haya podido concretar.
En ASP se lo hace por medio de los comandos conection.rollacktrans, pero no se como hacerlo en PHP con MySQL.
Gracias, de todas formas.
Chau.
  #4 (permalink)  
Antiguo 01/06/2002, 19:45
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años
Puntos: 68
Re: Integridad de DB

Martincho, por ahi me equivoque, pero una tabla de relacion entre los eventos y los usuarios solo se necesitaria cuando la relacion entre eventos y usuarios es de muchos a muchos, o sea, un usuario puede tener muchos eventos, y UN evento, puede tener muchos usuarios.

Pero creo que en tu caso, UN evento corresponde a 1 y solo 1 usuario, o me equivoco ?

Entonces, si ese fuera el caso, lo mejor para hacer, en vez de hacer una tabla de relacion entre usuarios y eventos, es agregar en cada registro de evento, un campo más que fuera &quot;id_usuario&quot;.

Y de esa manera, te solucionaría &quot;tan solo un poco&quot; el problema.

Ahora, el tema de las transacciones, te comento que mySQL soporta Transacciones solo en la versión MAX de la Base ( si es que estás utilizando mySQL, claro).

Saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #5 (permalink)  
Antiguo 04/06/2002, 15:55
 
Fecha de Ingreso: mayo-2002
Mensajes: 92
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Integridad de DB

Hola!
Gracias por la información.
Antesde terminar esta conversación,una ultima pregunta:
Alaguien me podria decir donde puedo encontrar informacion sobre transacciones en MySQL con PHP?(preferiblemente en español)
Chau.
Suerte. :P
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:17.