Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

¿BBDD separadas o en una misma?

Estas en el tema de ¿BBDD separadas o en una misma? en el foro de Bases de Datos General en Foros del Web. Buenos días, Estoy creando una aplicaicón bastante grande, que maneja muchos datos, y me ha surgido una duda a la hora de manejar las bbdd. ...
  #1 (permalink)  
Antiguo 18/04/2012, 03:57
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Pregunta ¿BBDD separadas o en una misma?

Buenos días,

Estoy creando una aplicaicón bastante grande, que maneja muchos datos, y me ha surgido una duda a la hora de manejar las bbdd. Al principio, yo lo organicé en bbdd (digamos que todo lo relacionado con usuarios en una bbdd, lo relacionado con archivos en otra, lo relacionado con mensajes en otra...) Pero claro, a la hora de interactuar tiene que ser todo por código, y estas no pueden ser relacionales...

Que es mejor, ¿mantener cada cosa en una base de datos, perdiendo así capacidad de relación, pero con vista a escabilidad de cada bbdd, o unificarlo todo y mejorar así las relaciones?


Un saludo!
__________________
Neversyn Software e Ingeniería
  #2 (permalink)  
Antiguo 19/04/2012, 17:05
 
Fecha de Ingreso: enero-2008
Mensajes: 201
Antigüedad: 16 años, 3 meses
Puntos: 39
Respuesta: ¿BBDD separadas o en una misma?

Misma BBDD. En el ejemplo que pones ¿cómo realizas una consulta que te diga para cada usuario cuantos mensajes tiene?
  #3 (permalink)  
Antiguo 19/04/2012, 17:47
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: ¿BBDD separadas o en una misma?

Pues serie usando el operador SQL JOIN, y recorriendo los usuarios con un while. Más o menos la idea es: Que coja el id de usuario de la tabla usuarios, y el mismo userid que coincida en el campo para_el_user_id de la tabla mensajes, y luego contabilizas los resultados.

Aunque no estoy seguro si es realmente lo que preguntas
__________________
Neversyn Software e Ingeniería
  #4 (permalink)  
Antiguo 20/04/2012, 07:54
 
Fecha de Ingreso: enero-2008
Mensajes: 201
Antigüedad: 16 años, 3 meses
Puntos: 39
Respuesta: ¿BBDD separadas o en una misma?

Esa es la respuesta correcta, pero si tienes los usuarios en una base de datos y los mensajes en otra ¿cómo las unes en una sola sentencia SQL? Tendrías que hacer 2 consultas, una para obtener los usuarios de una BBDD y luego otra para obtener la información de la otra BBDD, al final eso es mucho más lento.
  #5 (permalink)  
Antiguo 20/04/2012, 08:47
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: ¿BBDD separadas o en una misma?

Yaa, por eso pensaba en meterlo todo en una. Pero claro, también pensé en que, al tenerlo por separado, ya que la base de datos de usuarios tiene muchas mas consultas que la de mensajes, si tengo cada una en un servidor por ejemplo, las peticiones no sobrecargan tanto al estar en distintos servidores... pero si, lo he unido todo en una ;)

Gracias!
__________________
Neversyn Software e Ingeniería
  #6 (permalink)  
Antiguo 20/04/2012, 15:24
 
Fecha de Ingreso: noviembre-2008
Ubicación: Lima
Mensajes: 48
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: ¿BBDD separadas o en una misma?

man es la misma pregunta que iba hacer pero veo que ya te adelantaste, pero aun no veo una respuesta clara ya que cada una de las formas que mencionas tiene su ventaja
  #7 (permalink)  
Antiguo 24/04/2012, 18:26
 
Fecha de Ingreso: febrero-2011
Mensajes: 85
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: ¿BBDD separadas o en una misma?

Hola zeuslife

Desde mi muy particular punto de vista, si lo metes todo en una sola base de datos, esto es poco funcional, ya que la estas llenando de datos inecesario (llamese basura), supongamos que quieres guardar el nombre del usuario, departamento, y sus mensajes.

Imagina que el usuario francisco del departamento ventas, postea 100 mensajes, tendras en tu base de datos 100 veces la palabra francisco y ventas en cada campo y esto te incrementa el volumen de tu base de datos que no es lo mismo que si tienes una base de datos "usuarios" con campos "idUsuario", "nombre", otra base de datos "deptos" con campos "idDeptos", "nombreDepto" y otra base de datos "mensajes" con campos "idUsuario", "mensaje", "idDepto" y despues haces una solo consulta uniendo las tres bases de datos primero "mensajes" con "usuarios" por "idUsuario" y en la misma consulta "mensajes" con "deptos" por "idDepto" que es comun en ambas bases de datos asi com idUsuario.

Tambien comentarte que la clave esta en el WHERE de la consulta, ya que como tu mencionas, tambien es poco eficiente recorrer toda la base de datos con un WHILE e ir descrtando registros. y todo esto como ya te mencione lo puedes hacer en una sola consulta.

Si tu analizas esto es mas eficiente que manejar una sola base de datos, ademas de que lo puedes hacer en una sola consulta y no en dos como lo menciona anteriormente.

hechale un ojo a san wikipedia

http://es.wikipedia.org/wiki/Join


Saludos y espero te sirva

Gerardo

Última edición por computer_si; 25/04/2012 a las 06:29 Razón: faltaron datos

Etiquetas: bbdd, distitnas, relaciones
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 03:41.