Foros del Web » Programando para Internet » PHP »

para BD o para PHP?

Estas en el tema de para BD o para PHP? en el foro de PHP en Foros del Web. Hola comunidad... no se exactamente donde postear el mensaje...disculpa a los moderadores sino es el lugar correcto....creo que es un poco conceptual por eso la ...
  #1 (permalink)  
Antiguo 05/04/2008, 15:28
Avatar de SidP  
Fecha de Ingreso: febrero-2006
Ubicación: /etc/php.ini
Mensajes: 129
Antigüedad: 18 años, 9 meses
Puntos: 2
para BD o para PHP?

Hola comunidad...
no se exactamente donde postear el mensaje...disculpa a los moderadores sino es el lugar correcto....creo que es un poco conceptual por eso la ponga aqui....
actualmente estoy empezando a construir una aplicacion con POO....utilizando MySQL como servidor base de datos...he visto en muchas aplicaciones que a la hora de construir las tablas lo hacen sin usar claves foraneas ni una serie de relaciones entre tablas usando llaves y claves extranjeras...ahora mi pregunta es la siguiente....es mas optimo hacer todos los UPDATE, DELETE con codigo que pudiendo utilizar las bondades de los procedimientos almacenados y otras (en CASCADE,RESTRICT)que vienen con las SGBD...de que manera podria influir posteriormente para la reutilizacion de codigo o cambio en las estructuras de las tablas.....y ademas en la velocidad de la aplicacion?

Gracias de antemano.
  #2 (permalink)  
Antiguo 05/04/2008, 18:41
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: para BD o para PHP?

Hola SidP,
Lógicamente hay muchas cosas que por razones de rendimiento es mejor que hagan los SGBD, como por ejemplo encargarse de la consistencia de los datos mediante claves foráneas. No es que tenga pruebas o estudios que lo prueben, pero parece lógico. Además es más seguro que ocuparse uno mismo

El problema, según lo veo, tiene 2 raíces:
En principio, la falta de soporte por parte de MySQL. Hasta hace algunos años, las tablas por defecto de MySQL (MyISAM) no soportaban transacciones (creo que ahora tampoco, que hay que usar tablas InnoDB), además el soporte de procedimientos almacenados es reciente (MySQL 5).
Al ser el motor más usado, esto implica malas costumbres.

Por otro lado está el tema de la falta de profesionalidad. Pocas personas aprenden a usar transacciones, procedimientos y claves foráneas, principalmente porque la formación en este sentido es deficiente (los cursos de "programador web" que conozco dan vergüenza), y a veces también porque un día comenzaron a programar, les salió bien, lo siguieron haciendo y nunca buscaron información sobre este tema.
Claro, después les va lenta una aplicación que hace un SELECT * en una tabla de millones de registros, y no saben cuál es el problema...

Las bondades de los SGBD son en su mayoría compartidas por todos ellos. No creo que usarlas repercuta de forma negativa en la reutilización de código, y estoy seguro de que aportan seguridad sin reducir la velocidad de la aplicación.

En las estructuras de las tablas es otro tema, ya que obviamente no es lo mismo tener 10 tablas sin vincular y querer cambiar la estructura, que tener las mismas 10 tablas con claves entre sí. Será más complicado, pero hay que tener en cuenta que no es una tarea que se haga muy seguido, considerando que antes de empezar un proyecto complejo debería existir una fase de diseño, en la que se debería estudiar la estructura de base de datos a usar.


Saludos.
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 14:10.