Comunidad de diseño web y desarrollo en internet online

Registros en diferentes tablas o no?

Citar            
MensajeEscrito el 26 Feb 2010 04:29 am
Compañeros, estoy pensando en desarrollar una pequeña aplicación web, en donde cada usuario pueda registrarse y comenzar a utilizarla, en donde guarde los datos en una MySQL, ahora la pregunta es la siguiente:

1) ¿Los datos de cada usuario pueden guardarse en una sola tabla y luego mostrarlos por medio de una consulta que recoja los datos de ese usuario (En la tabla estarían los datos de todos los usuarios juntos)?

2) ¿Se debe crear una tabla por cada usuario, para que guarde especificamente los datos de cada usuario por aparte?

3) ¿Existe otra forma de hacerlo?

Gracias de antemano compañeros!

Por danigon

Claber

146 de clabLevel



Genero:Masculino  

Costa Rica

firefox
Citar            
MensajeEscrito el 26 Feb 2010 05:21 am
Si solamente quieres guardar los datos, debes almacenarlos todos en una misma tabla. Esa es la forma correcta de hacerlo.

Por bucle_infinito

Claber

166 de clabLevel

1 tutorial

 

.NET Developer

firefox
Citar            
MensajeEscrito el 26 Feb 2010 01:56 pm
Lo que temo es que la consulta, al tener que buscar por ejemplo 20 registros de un usuario entre los 5.000 registros del total de los usuarios, vaya a ser una consulta muy lenta, que retarde el sistema en general?

¿Qué opinan?

Gracias, por su ayuda!

Por danigon

Claber

146 de clabLevel



Genero:Masculino  

Costa Rica

firefox
Citar            
MensajeEscrito el 26 Feb 2010 02:20 pm
No se bien a que te referis con datos de usuarios. Por darte un ejemplo simple. Suponete que tu aplicación lo que hace es permitir a tus usuarios a escribir artículos. La base de datos sería por ejemplo:

datosUsuarios
----------------------
id
nombre
mail
password
etc

artículos
-----------------------
id
id_usuario
artículo
etc

Si queres todos los artículos de un usuario buscar en la tabla artículos por id_usuario

Espero que te ayude
Saludos

Por GustavoV

Claber

136 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Feb 2010 02:28 pm
Si claro, pero buscar como te digo 20 artículos del usuario "x" entre 4.000 artículos de los usuarios a, b, c, d, e, f, g, h, i... no hace que el resultado de la consulta sea muy lento???

Por ejemplo las listas de reproducción de Grooveshark se guardarán todas, las de todos los usuarios juntos en una misma tabla??

Por danigon

Claber

146 de clabLevel



Genero:Masculino  

Costa Rica

firefox
Citar            
MensajeEscrito el 26 Feb 2010 03:35 pm
De hecho es la forma correcta. Fijate las especificaciones del motor de bases de datos que vas a usar y te vas a dar cuenta que en realidad buscar en tablas de por ejemplo 4.000 filas no es mucho.
Tambien podes leer sobre Normalizar bases de datos para que te ayude a difinir la estructura.

De la forma que pensas (crear una tabla por usuario) se hace muy pesada la base de datos. Imaginate el caso de Grooveshark que tiene por decir un numero tiene 5000 usuarios (serian 5000 tablas)

Saludos

Por GustavoV

Claber

136 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Feb 2010 04:04 pm
Excelente, muchas gracias por tu ayuda!!

Por danigon

Claber

146 de clabLevel



Genero:Masculino  

Costa Rica

firefox
Citar            
MensajeEscrito el 26 Feb 2010 05:07 pm

danigon escribió:

Lo que temo es que la consulta, al tener que buscar por ejemplo 20 registros de un usuario entre los 5.000 registros del total de los usuarios, vaya a ser una consulta muy lenta, que retarde el sistema en general?

¿Qué opinan?

Gracias, por su ayuda!

Are you kidding me?. 5000 registros para MySQL es nada. De hecho, cualquier motor de base de datos es más eficiente si tiene que recorrer una sola tabla en vez de muchas a la vez. Por lo que el cuello de botella está antes que nada en la forma en que organizas los datos y las consultas sobre ellos.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.