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

Divide y vencerás

Estas en el tema de Divide y vencerás en el foro de Mysql en Foros del Web. Buenas, Ando preocupado con el tema del diseño de las tablas ya que quiero que quede lo más optimizado posible. Una vez me dijerón que ...
  #1 (permalink)  
Antiguo 05/10/2010, 08:28
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Divide y vencerás

Buenas,

Ando preocupado con el tema del diseño de las tablas ya que quiero que quede lo más optimizado posible.
Una vez me dijerón que para este tema, había que aplicar el famoso lema de -"divide y vencerás"- y así he solido hacer siempre.

Pero claro, puede que en algunos casos no haga falta...

Les explico. Quiero crear un sistema de grupos o páginas (como el de las redes sociales), entonces, la tabla principal sería grupos con los siguientes campos: id, nombre, descripcion, fecha, creador, visitas.

Bien, pero me gustaría que estos grupos o páginas tuvieran como una pequeña configuración. Es decir que el usuario pudiese ponerle un color o imagen al fondo, pudiese darle X permisos, etc.

Entonces, ¿aplico el divide y vencerás?. O sea, creo otra tabla llamada por ejemplo, config_grupo en la que los campos sean: id, grupo_id, permisos, estilo_fondo?
¿O lo añado todo a una misma tabla?

Como díje, siempre suelo dividir el trabajo, pero claro, ¿realmente es óptimo crear dos tablas, para tan pocos campos?


Saludos,
  #2 (permalink)  
Antiguo 05/10/2010, 08:50
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años
Puntos: 10
Respuesta: Divide y vencerás

Si solo vas a tener un campo mas que es color o fondo no creo que sea necesario pero si vas a agregar mas configuraciones creo que es mejor una nueva tabla de configuraciones
__________________
www.granideamillonaria.com

Última edición por rickyper; 05/10/2010 a las 08:59
  #3 (permalink)  
Antiguo 05/10/2010, 14:50
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Divide y vencerás

Gracias por responder,

Claro, eso mismo pienso yo. Como van a ser 3 o 4 campos pues probablemente lo meta todo en una tabla y listo.

Una pregunta...

Supongamos que tengo 50 tablas. ¿Es mejor meterlas todas en una misma base de datos?, o por el contrario, ¿saldría más optimizado si pongo 25 tablas en una base de datos y las otras 25 en otra base? (Obviamente estando en el mismo servidor...)

Muchas gracias,
  #4 (permalink)  
Antiguo 05/10/2010, 15:02
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Divide y vencerás

Hazte la siguiente pregunta ¿la configuracion de un grupo va a servir para varios grupos o algo por el estilo? ¿o cada grupo su configuracion independiente? Si la respuesta es cada grupo su configuracion entonces metelo todo en la propia tabla. Otra cosa es que por ejemplo quisieras añadir un campo tipo TEXT, de esos con muchos kbs de informacion, entonces si es aconsejable sacarlo a otra tabla de modo que la "tabla principal" este mas "liviana", ahi optimizas bastante ayudando con la carga del mysql.

Lo de las 50 tablas, no ganas nada separandolas en dos bases de datos del mismo server. Piensa que Mysql es una "bestia", esta diseñado para que tire con todo lo que le eches y más. La diferencia entre una base de datos con 5 tablas o con 500 ¿cual es? no soy muy experto pero probablemente le cueste muy poquito acceder a cualquiera sean las que sean. Es como preguntar ¿que es mejor tener en windows mis 500 peliculas en la misma carpeta o separarlas por letra? (quizas no sea la mejor comparacion ejje)

La optimizacion tiene que ir mas enfocada a las tablas individualmente hablando, tener buenos indices, sacar campos tipo TEXT fuera, cachear resultados, etc.

Otra cosa sería el caso en que tuvieramos tal cantidad de tablas y registros (sobre todo registros) que la CPU de tu server heche humo! ahi ya conviene separar quizas los datos en dos servers, pero de eso si que se muy pero que muy poquito...
  #5 (permalink)  
Antiguo 05/10/2010, 15:17
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Divide y vencerás

Facil, estudia diseño conceptual de base de datos (o modelamiento de datos) y un poco de normalización y te quedará todo más claro.

saludos
  #6 (permalink)  
Antiguo 06/10/2010, 03:11
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Divide y vencerás

La respuesta en este caso es cada grupo su configuración Así que haré eso, lo metere todo en la misma tabla, aparte para dos o 3 campos más... y encima no van a ser TEXT... así que... todo en la misma tabla :)

Sobre lo de tener una tabla en un server y otra en otro, pues es algo que me informare más adelante...

Gracias a todos por responder,

Saludos,

PD: Ribon, ya me he pillado un librillo al respecto, a ver que tal...

PD2: Vun, no puedo agradecertelo con Karma (no me deja)

Etiquetas: Ninguno
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 16:19.