Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/07/2011, 09:12
jpeeri
Invitado
 
Mensajes: n/a
Puntos:
Eficiencia en base de datos.

Buenas:

Veréis estoy creándome mi propio Framework para PHP y quería consultaros una duda que me ha surgido. Mi Framework hace uso de la base de datos para todo.

Por poneros un ejemplo. La primera vez que entramos al index.php

- Comprueba que eres usuario (no hace consulta porque no tienes una cookie, pero si la tuviese comprobaría en la base de datos el hash).

- Comprueba que el sitio está encendido (Hace una consulta a la tabla settings y comprueba que siteoff tiene valor 1)

- Recoge el nombre de la sección en la que estamos (en el caso de estar en index.php hace una consulta a la tabla settings que le dice el startpage) y comprueba que exista una sección inicializada en la tabla sections, si existe carga la sección correspondiente

- Comprueba que tienes permisos para leer la página (Hace una consulta a la tabla permissions y hace las comprobaciones necesarias).

- Se carga el theme por defecto, etc.

Vamos, que a lo tonto a lo tonto me hace como 20 consultas a la base de datos.

Y aquí viene mi problema. Hasta ahora he estado usando mi framework de la siguiente manera. (Por ejemplo pongo la función que me da los valores de los settings.

Código PHP:
function getSettingsValue($name){
$dbConn Database::getConnection("user"// Lanza una conexión en modo usuario (hay dos tipos de usuarios en la BD y éste tiene muchas limitaciones, por si acaso).


$obj Database::selectObj("settings""value""name = $name"// SELECT  value FROM settings WHERE name = $name

Database::close($dbConn);

return 
$obj['value'];


Claro, lo que vengo pensando ahora es que menuda estoy montando abriendo y cerrando conexiones de bases de datos cuando podría unificarlo todo en una poniendo al inicio del index.php el connect y al final el close.

Que es mejor? como lo estoy haciendo o de la otra forma?

Saludos.