Foros del Web » Programando para Internet » PHP »

que es mas optimizado: configuracion en archivos o en bd

Estas en el tema de que es mas optimizado: configuracion en archivos o en bd en el foro de PHP en Foros del Web. digamos, que sobrecarga menos el servidor un include o una consulta? (hay que ver que dudas me corroen por dentro )...
  #1 (permalink)  
Antiguo 06/08/2003, 07:22
 
Fecha de Ingreso: agosto-2003
Mensajes: 102
Antigüedad: 14 años, 4 meses
Puntos: 0
que es mas optimizado: configuracion en archivos o en bd

digamos, que sobrecarga menos el servidor un include o una consulta?

(hay que ver que dudas me corroen por dentro )
  #2 (permalink)  
Antiguo 06/08/2003, 09:03
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
Depende, si para leer la configuración en la base de datos, tenés que conectarte a la base primero, te diría que vayas directametne a por los archivos. Pero si ya tenés una conexión disponible, sacalos de la base de datos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #3 (permalink)  
Antiguo 06/08/2003, 23:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Lo "normal" es que esa configuración (independiente de los datos obvios de conexión a tu BD que han de estar si o si en un archivo no en tu BD ..) sean datos que se van a usar como "constantes" (o variables) en tus script ...

Accedes a un dato en la BD implica una conexión (y negociación del usuario/password) (si no usamos conexiones persistentes) esto esto es tiempo .. y proceso de PHP+tu motor de BD que uses para extraer unos datos que podrías tener como ya sabes en un simple "include()" que llames en tus scripts ... Si usases conexiones permanentes a tu BD .. ahí te ahorrarias el tiempo de conexión a costa de más recursos del servidor por cada link abierto "permanentemetne" ..

En resumen .. Si hablamos de "configuración" .. general para tu apliación .. usa archivos y llamalos en tus scripts vía include() o lo que necesites ..

Ahora .. si esa configuración es "personalizada" para cada supuesto usuario de tu sistema .. ahí es otro tema .. Ahí sería recomendable una BD (por el hecho de acceder y actualizar esos datos como cualquier otro "perfil" que requieras ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 07/08/2003, 01:07
 
Fecha de Ingreso: agosto-2003
Mensajes: 102
Antigüedad: 14 años, 4 meses
Puntos: 0
muchisimas gracias a los dos, me habeis aclarado muchisimas dudas

viendo vuestra amabilidad, rapidez y sabiduria (diganme pelota si quieren ) les explicare cual es el caso concreto en que me encuentro....

a ver, la configuracion general basica (como los datos de la bd y otros) ya las tengo en un archivo llamado configuracion.php, los datos para la configuracion predeterminada y para cada usuario (por ejemplo idiomas o aspectos) estan en la bd, mi problema esta a la hora de guardar los datos de configuracion para cada modulo... tal como lo tengo estructurado cada modulo tiene unas variables de configuracion distintas (desde el numero de noticias a mostrar hasta si una actividad se abre en una ventana nueva o en la misma).... bien, para que nos entendamos, cuando yo abro un modulo cargo sus variables de configuracion (que como he dicho son independientes a las de los otros modulos).

mi duda reside en si para cada modulo guardo un pequeño archivo de configuracion, que desde el panel de control se pudiera reescribir, o por el contrario guardo las configuraciones en la bd, donde me encontraba con otra disjuntiva, hago una tabla con un solo registro para cada modulo (lo cual no me convence por acumular tantas tablas) o monto una sola tabla de configuraciones para los modulos (con lo que guardo espacios vacios, ya que un modulo necesitara 2 campos y otro 10)... asi que como veis perdido estoy

solo decir que tengo conexiones persistentes y que a la hora de coger la configuracion del modulo ya tengo establecida una conexion a la bd, y que si me resulta mejor hacerlo por bd que por archivos, indiquenme porfavor como tendria que estructurar la tabla

PD. Perdon por la extension, vaya tocho les he dejado
  #5 (permalink)  
Antiguo 07/08/2003, 01:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Yo tendría esos datos de configuración en una BD .. Suponiendo (que así será) .. el usuario al entrar al sistema se autentifica .. en ese instante volcaría esos datos de configuración para tus módulos a unas variables de sesión (o en su defecto cookies). ..

A partir de ahí trabajaría con esa configuración de la sesión .. así libero consultas a la BD .. (por supuesto si cambian los datos de preferencias .. ahí tocaría volver a volcar las variables a la sesión/cookie para que queden disponibles para tus módulos)

Por lo menos así es como trabajo yo 1 consulta mas o menos compleja al "longearse" el usuario en el sistema donde obtengo sus preferencias y a partir de ahí me olvido de más consultas a la BD hasta que no se modifique o haga un nuevo "login" el usuario.

-----------

Los problemas que tienes sobre como orginazar esos datos en tu BD .. pasan por un tema que denominan "normalización" (dentro del "modelo de datos") .. Esa teoría define como puedes organizar tus tablas/datos para que mantengan la relación entre ellos como corresponda ..

Puedes ver un artículo del tema en:
http://www.mysql-hispano.org/page.php?id=16


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 07/08/2003 a las 01:21
  #6 (permalink)  
Antiguo 07/08/2003, 07:18
 
Fecha de Ingreso: agosto-2003
Mensajes: 102
Antigüedad: 14 años, 4 meses
Puntos: 0
me he leido el articulo que me has pasado (si entero ), y esta muy bien lo de la normalizacion, bastante sentido comun se desprende de el... con mucha suerte ya habia hecho las tablas teniendo en cuenta lo que comentan... pero por desgracia no me ha ayudado a discernir que diseño me interesa mas mi caso, multiples tablas o una tabla semi vacia... hacerlo con sesiones como comentas, tampoco creo que sea apropiado, pues una persona no tiene porque entrar en todos los modulos (incluso no puede entrar en ninguno) por lo tanto tampoco hace falta que arrastre todas las variables de configuracion de todos ellos a traves de las sesiones... no se, estoy bastante liado...
  #7 (permalink)  
Antiguo 10/08/2003, 22:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Nark ..

1º) .. sobre el tema de "una tabla sime vacia" o "multiples tablas" : Más bién si te fijas en el tutorial sobre normalización que te pasé el link .. sería una tabla y "registros" en ella que serían todas las referencias estilo: (tabla preferencias):

id_preferencia
script (que pertenece, si quieres podrías tener una tabla extra (con relación 1->N) para guadar aquí en este campo sólo el "id" del script que corresponda ..)
prefencia (podrias guardar las preferencias por ejemplo .. separadas por comas: on,nose,1,10,ventana_completa y cosas así .. para luego desglosarlo con split() .. sencillamente. O más "normalizado" con otra tabla (1->N) que sea: id_prefencia, estado .. donde almacenarías ese valor "on" .. "nose" .."1" ..


2º) Independientemente del número de scripts con alguna preferencia distinta a la "por defecto" que puedas tener .. Lo que se suele hace en estos casos es hacer una (sólo una) consulta (más o menos compleja dependiendo de la "normalización" de tu modelo de datos que emplees segun lo que te comenté en el punto 1º) .. en la cual obtienes las preferencias que sean "personalizadas" y a su vez las "vuelcas" a una(s) variable(s) de sesión para tenerlas disponibles en todos tus scripts que las requieran .. Tus scripts miraran si está definida tal o cual variabel de sesión "preferencia" y si no está .. aplica los valores por defecto (los cuales se los dás ahí mismo en el script en cuestión .. o bajo algún include "común" para todos tus scripts ..)

La idea es (en resumen):
* Tener "organizado" y estruccturado los datos de esas variables de "preferencias": a que scritp pertence y que valor(s) pueden tener.
* Si esos valores son "personalizables" (como así lo son en tu caso) .. Independientemente si los guardas (asociados al usuario que le pertenecen) en una Base de datos .. o en un archivo de texto plano .. Lo "ideal" es no hacer consultas "repetitivas" a tu BD o archivo de texto plano para ver esos valores de esa configuración en los scripts que puedan disponer de dicha configuración "personalizable" .. Por eso trabajar con sesiones (sobre todo para el caso de BD) aligerará la carga de tu motor de BD que uses ...


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 11/08/2003, 09:35
 
Fecha de Ingreso: agosto-2003
Mensajes: 102
Antigüedad: 14 años, 4 meses
Puntos: 0
muchisimas gracias, ahora si que tengo claro como hacerlo... de verdad muchas gracias
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 19:10.