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

Manejar con php una base de datos grandisima

Estas en el tema de Manejar con php una base de datos grandisima en el foro de Mysql en Foros del Web. Buenso dias, habia hecho un sistema para una comunidad, todo fucnionaba muy bien pero despues de que tuvimos mas de 12000 usuarios el servidor dedicado ...
  #1 (permalink)  
Antiguo 17/04/2008, 14:55
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Manejar con php una base de datos grandisima

Buenso dias, habia hecho un sistema para una comunidad, todo fucnionaba muy bien pero despues de que tuvimos mas de 12000 usuarios el servidor dedicado empezo a fallar y a atascarse

Se que el problema esta es en la forma en que programé el sistema y estructure la base de datos, porque en el mismo servidor tenemos otra comunidad ( porgramada por una empresa ) con mas de 13000 usuarios y un chat en HTML ( sin ajax ) y esta comunidad no atasca el server.

una de los factores determinantes era que el servidor se demoraba mucho haciendo cualquier query entonces se iban acumulando las conexiones hasta que se producia un error TOO MANY CONNECTIONS, ( todo esto lo investigue siguiendo los LOGS del server y haciendo seguimiento continuo via TELNET y SSH )

Ahora he tomado la decision de reestructurar la base de datos y hacer de nuevo los QUERY y quiero que me den consejos de que debo tener en cuenta, ( TODO lo necesario para que no se me bloquee el servidor).

les explico un poco la estructura de las tablas:

hay un tabla de usuarios_genenerales.
ID_usuario
usuario
clave
edad
sexo

Hay una tabla de usuarios_intercambio
ID_usuario_intercambio
ID_usuario
Fecha_de_intercambio
pais_intercambio

hay una tabla de idioma
ID_usuario_idioma
ID_usuario
idioma_enseña
indioma_aprende


mas o menos es asi, entonces el susuario se registra en la tabla de usuarios geneales y ya elije si quiere ser de intercambio o de idiomas o de ambos.
las tres tablas se relacionan con el campo ID_usuario.

Una de mis preguntas es:

1. Será mejor juntar todas las tablas en la primer tabla usuarios_generales ?
2. es mejor tener un solo campo clave como index?
3. los ID los pongo como autoincrementables o mejor los inremento yo manualmente.

Cuales pueden ser los factores para que mis consultas sean rapidas?

De antemano muchas gracias. acepto caulquier sugerencia.
__________________
SEO en Medellin
  #2 (permalink)  
Antiguo 17/04/2008, 15:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Manejar con php una base de datos grandisima

Tema trasladado a MySQL.
  #3 (permalink)  
Antiguo 18/04/2008, 04:47
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Manejar con php una base de datos grandisima

Te diré lo que yo haría. Mis sugerencias no son las de un técnico, pero quizás puedan empezar a orientarte hasta tanto te llegan recomendaciones basadas en conocimientos técnicos. Imagino que estamos hablando de tablas MyIsam, aunque tendrías que preguntar si para tu caso no sería mejor usar InnoDB y gestionar las relaciones de manera más segura.
Para empezar yo incluso añadiría más tablas, una para idiomas y otra de países;

hay un tabla de usuarios_genenerales.
ID_usuario (Primary Key) INT autoincrementable Not Null
usuario
clave
edad
sexo
IDpaisprocedencia INT (index) relacionado con el id de la tabla países

Hay una tabla de usuarios_intercambio
ID_usuario_intercambio (Primary Key) autoincrementable Not Null
ID_usuario INT (index) relacionado como Foreign Key con el id de la tabla usuarios_generales
Fecha_de_intercambio campo DATE
idpais_intercambio INT (index) relacionado como Foreign Key con el id de la tabla paises

hay una tabla de idioma
ID_usuario_idioma (Primary Key) INT autoincrementable Not Null
ID_usuario INT (index)
IDidioma_enseña INT (index) relacionado como Foreign Key con el id de la tabla idiomas
IDidioma_aprende INT (index) relacionado como Foreign Key con el id de la tabla idiomas

tabla de países
IDpaises (Primary Key) INT autoincrementable Not Null
país

tabla de idiomas
IDidioma (Primary Key) INT autoincrementable Not Null
idioma

1. Será mejor juntar todas las tablas en la primer tabla usuarios_generales ? No. Es mejor hacer una correcta estructura relacional, basada en el uso de relaciones entre campos numéricos y un correcto aprovechamiento de los índices.2. es mejor tener un solo campo clave como index? Debe haber un sólo campo Primary Key que es un índice por naturaleza, pero tú debes indexar otros campos para que las relaciones funcionen de manera más rápida y eficaz.
3. los ID los pongo como autoincrementables o mejor los inremento yo manualmente. Ponlos como autoincrementables

De todas formas luego también el modo de hacer las consultas cambiará. Por otra parte, habría que ver si el problema no es sólo de la base de datos y su gestión, sino de la programación mediante PHP, ASP, etc.

Esto es para empezar..., pero, como te digo, si vas a empezar de cero, espera a que alguien con más conocimientos te aconseje un tipo de tabla para el uso que le vas a dar.

Última edición por BrujoNic; 18/04/2008 a las 08:02
  #4 (permalink)  
Antiguo 18/04/2008, 09:03
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Re: Manejar con php una base de datos grandisima

Gracias jurena,
El problema es que antes tenia tambien la tablas paises como dices ( eso si no le habia puesdo Clave foranea) y cuando lo tenia asi entonces andaba mas lento.
Me toco pasar la tabla de los paises a un archivo y meter todo dentro de un array poniendo como INDICE del array el ID del pais.

Es sumamente extraño, y ya que mensionas que el problema puede estar tambien en la programación, quizas tengas experiencia en como optimizar a travez del codigo.

Espero más comentarios que me ayuden con este problema, muchas gracias a todos.
PD: uso PHP para programar.
__________________
SEO en Medellin
  #5 (permalink)  
Antiguo 18/04/2008, 09:40
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Manejar con php una base de datos grandisima

Cita:
Iniciado por mafima Ver Mensaje
Gracias jurena,
El problema es que antes tenia tambien la tablas paises como dices ( eso si no le habia puesdo Clave foranea) y cuando lo tenia asi entonces andaba mas lento.
Me toco pasar la tabla de los paises a un archivo y meter todo dentro de un array poniendo como INDICE del array el ID del pais.
.
Si no lo tenías como clave foránea y tampoco lo habías indexado, ahí está el problema. Para estos casos, yo no usaría un array de PHP. Te aseguro que yo tengo tablas algo más complejas unidas con inner join con PK y FK con sus índices y las consultas van bastante rápido. En mi opinión, la clave está, como te he dicho, en establecer bien las relaciones, en poner los índices adecuados y en hacer las consultas más apropiadas, para lo que el explain nos ayuda bastante.
Un ejemplo de un mal uso: tú pones en idiomas
español
francés
ruso
inglés
incluso cuando indexas ese campo la velocidad con que es procesado es mucho menor que si tuvieras números indexados
1
4
7
8
y eso por no hablar sobre cuando haces group by, order, etc.
Y eso se nota a la larga y mucho...
Muestra alguna de tus consultas y la estructura de las tablas, y seguro que habrá quien te ayude a acelerar las consultas.
En mi opinión, hacer el trabajo bien en MySQL; luego te ocuparas de sacar el mejor rendimiento a PHP (pide ayuda en el foro PHP), aunque probablemente alguien con más conocimientos que yo sobre PHP me corrija y me "dé un buen tirón de orejas" refutando con argumentos esta opinión mía propia de un inexperto.
  #6 (permalink)  
Antiguo 18/04/2008, 10:18
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Re: Manejar con php una base de datos grandisima

Hombre pues seguro sabes mas que yo, porque ni uso explai ni PK ni FK ( es primera vez que los oigo, voy a poner la verdadera estructura de la tabla de usuarios:

Agradezco muchisimo tu ayuda, la verdad es que me siento frustrado.

Código PHP:
CREATE TABLE `usuarios` (
  `
ID_usuarioint(11NOT NULL auto_increment,
  `
usuariovarchar(50) default NULL,
  `
nombrevarchar(30) default NULL,
  `
generotinyint(1) default NULL,
  `
emailvarchar(50) default NULL,
  `
clavevarchar(15) default NULL,
  `
regionvarchar(6) default NULL,
  `
paisvarchar(6) default NULL,
  `
msnvarchar(50) default NULL,
  `
skypevarchar(50) default NULL,
  `
icqvarchar(50) default NULL,
  `
yahoovarchar(50) default NULL,
  `
fecha_nacimientodate default NULL,
  `
ocupaciontext,
  `
interesestext,
  `
ocupacion_entext,
  `
biografiatext,
  `
biografia_entext,
  `
fotovarchar(150) default NULL,
  `
librovarchar(255) default NULL,
  `
peliculavarchar(255) default NULL,
  `
educadortinyint(1NOT NULL default '0',
  `
empleadortinyint(1NOT NULL default '0',
  `
caserotinyint(1NOT NULL default '0',
  `
familiatinyint(1NOT NULL default '0',
  `
estudiantetinyint(1NOT NULL default '0',
  `
internacionaltinyint(1NOT NULL default '0',
  `
ver_correotinyint(1NOT NULL default '1',
  `
tmp_idint(11) default NULL,
  `
tmp_tablavarchar(60) default NULL,
  `
tmp_fechadatetime default NULL,
  `
fecha_entrodatetime default '1910-04-04 00:00:00',
  `
ID_regionsmallint(4NOT NULL default '0',
  `
ID_countrysmallint(3NOT NULL default '0',
  `
confirmacionint(11) default '0',
  `
confirmotinyint(1) default '0',
  `
ciudadvarchar(250) default NULL,
  `
fecha_ultimo_ingresodatetime default NULL,
  `
busqueda_generaltext,
  `
busqueda_languagetext,
  `
busqueda_studytext,
  `
busqueda_familytext,
  `
busqueda_housingtext,
  `
preferencia_contactotinyint(1NOT NULL default '4',
  
PRIMARY KEY  (`ID_usuario`,`ID_region`,`ID_country`)
ENGINE=MyISAM AUTO_INCREMENT=15011 DEFAULT CHARSET=utf8
( son muchas columnas, y estan como primary KEY `ID_usuario`,`ID_region`,`ID_country`)

en los campos primary KEY no pongo un valor en texto sino un numero ( asi lo etngo ahora y se demora mucho al hacer una consulta relacional)

ahora otra de las tablas:
Código PHP:
CREATE TABLE `students_abroad` (
  `
idint(7NOT NULL auto_increment,
  `
passvarchar(6character set latin1 default '',
  `
namevarchar(100character set latin1 default '',
  `
agetinyint(2) default NULL,
  `
sexvarchar(20character set latin1 default NULL,
  `
countryvarchar(2) default NULL,
  `
emailvarchar(50character set latin1 default NULL,
  `
provincevarchar(30) default NULL,
  `
destinationvarchar(2) default '',
  `
region_codevarchar(2) default '',
  `
length_stayvarchar(30character set latin1 default NULL,
  `
date_arrivalvarchar(30character set latin1 default NULL,
  `
commentslongtext character set latin1,
  `
datevarchar(20character set latin1 default '',
  `
ID_usuarioint(11NOT NULL default '0',
  `
comments_estext,
  `
activotinyint(1) default NULL,
  `
ID_pais_destinosmallint(3NOT NULL default '0',
  `
ID_region_destinosmallint(4NOT NULL default '0',
  `
ciudad_destinovarchar(255) default NULL,
  
PRIMARY KEY  (`id`,`ID_pais_destino`,`ID_region_destino`,`ID_usuario`)
ENGINE=MyISAM AUTO_INCREMENT=5049 DEFAULT CHARSET=utf8
y una consulta donde relaciono ambas tablas:

Código PHP:
SELECT students_abroad.ID_pais_destino,students_abroad.ID_region_destino,students_abroad.comments_es,students_abroad.date_arrivalstudents_abroad.length_staystudents_abroad.ciudad_destino,DATE_FORMAT(usuarios.fecha_ultimo_ingreso,'%d/%m/%Y') as fecha_ultimo_ingreso,DATE_FORMAT(usuarios.fecha_entro,'%d/%m/%Y') as fecha_entrousuarios.foto,students_abroad.ID_usuario,usuarios.usuario,usuarios.genero,usuarios.fecha_nacimiento,usuarios.ID_country,usuarios.ID_regionregions.region_nameusuarios.ciudad,(SELECT region_name FROM regions WHERE ID_region=usuarios.ID_region) As region_origen FROM students_abroad INNER JOIN usuarios INNER JOIN regions ON students_abroad.ID_usuario=usuarios.ID_usuario AND students_abroad.ID_region_destino=regions.ID_region WHERE activo=1 GROUP BY usuarios.ID_usuario ORDER BY case when foto is not null THEN usuarios.ID_usuario END DESCID_usuario 
saco la lista de los registrs en la tabla studing_broad y saco datos del usuario de la tabla general y lueog los ordeno primero los que tienen foto. ( esta consulta va lentisima por que la tabla de usuarios tiene mas de 12000 registros y la otra tiene casi 6000
__________________
SEO en Medellin
  #7 (permalink)  
Antiguo 20/04/2008, 05:52
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Manejar con php una base de datos grandisima

Yo observo algunos problemas, pero tampoco estoy muy seguro de lo que voy a decirte.

Veo algunas cosas raras (tablas poco partidas, subconsultas que parecen innecesarias, tablas ausentes, índices extraños, no uso de LIMIT en la consulta, relación poco visible), pero pero para ayudarte necesitaría más datos sobre la estructura lógica de tu base: qué es la tabla usuarios, para qué la tabla students_abroad, qué datos introduces y qué quieres sacar, cuál es la relación entre las tablas. Tal vez bastaría con que nos dijeras eso...
  #8 (permalink)  
Antiguo 20/04/2008, 10:51
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Re: Manejar con php una base de datos grandisima

Ok esxplico un poco.

Es una comunidad de intyercambio estudiantil, entonces el usuario se registra y puede elegir una ovarias modalidades de intercambio:

Study_Abroad: intercambio de estudiantes de pais a pais.
Study_language: intercambio de idioma, los estudiantes no se desplazan sino que aprenden cada uno del lenguage que el otro quiere enseñar a traves de internet.
host_family: espara familias anfitrionas, que quieren recibir estudiantes de otras partes del mundo.

entonces un usuario se inscribe como usuario general ( en la tabla usuarios ) y yaelije cual tipo de intercambio quiere o si los quiere todos o solo dos.

es por eso que la tabla usuarios tiene tanta informacion.

quice partir las tablas porque me parecio que cuando fuera a mostrar por ejemplo la lista de study_abroad era mas facil buscar entre los 6000 usuarios que quieren study_abroad a buscar entre los 12000 que son usuarios generales.

Agradezco mucho tu ayuda, eres practicamente quien se ha encargado de ayudarme con esto que me tiene tana gobiado.
__________________
SEO en Medellin
  #9 (permalink)  
Antiguo 20/04/2008, 10:54
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Re: Manejar con php una base de datos grandisima

por cierto no uso el LIMIT en esa consulta por que tengo que sacar los datos de la paginacion.
__________________
SEO en Medellin
  #10 (permalink)  
Antiguo 20/04/2008, 21:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: Manejar con php una base de datos grandisima

Así como se ve, las tablas en cuestión tiene una enorme falta de normalización.
La primera, Usuarios, puede partirse en al menos cinco tablas mejorando la eficiencia del modelo y de las consultas. La segunda, de seguro puede dividirse por lo menos en tres.
Mi sugerencia es que profundices en el modelo E-R y Estudies más profundamente el tema normalización.
  #11 (permalink)  
Antiguo 20/04/2008, 22:47
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Re: Manejar con php una base de datos grandisima

Ok, ahora mismo estoy estoy buscando en google lo de normalizacion y el modelo E-R que mencionas, porque la verdad es que apenas y me vengo a enterar que existe este modelo.

Mientras tanto aprovecho para preguntar, porque se debe dividir la tabla en varias, no se supone que si en una cosnulta voy a mostrar todos los datos de un usuario será mejor que esten en una misma tabla y asi tenga que hacer menos inner join?

agradezco su ayuda.
__________________
SEO en Medellin
  #12 (permalink)  
Antiguo 21/04/2008, 10:58
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Re: Manejar con php una base de datos grandisima

porque partirias la tabla usuarios en 4 tablas mas, veo que en esta tabla los campos siempre dependen del ID del usuario. ( que es uan calve primaria )

por ejemplo tampoco veo que hayan atributos o campos que no son calves primarias que dependan de otros campos que tampoco lo son. ( lo que me hace penar que esta acorde con el 3 nivel de normalizacion )

Aunque apenas y estoy aprendiendo esto de los niveles y de estructurar la base de datos ya que lo que se es empiricamente.

muchas gracias
__________________
SEO en Medellin
  #13 (permalink)  
Antiguo 21/04/2008, 11:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: Manejar con php una base de datos grandisima

Acá hay alguna orientación básica:
Modelo Entidad-Relación.
http://www.desarrolloweb.com/articul...-relacion.html
  #14 (permalink)  
Antiguo 21/04/2008, 13:24
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Re: Manejar con php una base de datos grandisima

aquí tienes un link que habla sobre normalizacion
http://www.mysql-hispano.org/page.php?id=16&pag=1
  #15 (permalink)  
Antiguo 21/04/2008, 13:47
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Re: Manejar con php una base de datos grandisima

ok, ya lei el manual de mysql hispano y tambien le breve articulo de desarrolloweb
ambos me ayudanm a comprender mejor el asunto, sin embargo encuentro dificultas al intentar aplicarlo.

Me pueden ayudar ustedes a saber como debe quedar mi tabla usuarios para que este normalizada y adecuado a un correcto modelo E-R.

estoy seguro que con un ejemplo concreto me aclaro mas, desde luego les haré preguntas abusando de su generosidad.

De antemano muchas gracias.

por cierto tambien lei la primer parte de un "manual" de mysql (http://mysql.conclase.net ) y ahora estoy lleno de mucha información pero no se como aplicarla a mi problema ni como ponerlo en practica
__________________
SEO en Medellin
  #16 (permalink)  
Antiguo 21/04/2008, 16:17
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Re: Manejar con php una base de datos grandisima

Mira este ejemplo
http://www.mysql-hispano.org/page.php?id=16&pag=3

Luego puedes usar un modelador de base de datos como http://www.fabforce.net/dbdesigner4/

Saludos!
  #17 (permalink)  
Antiguo 21/04/2008, 16:48
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Re: Manejar con php una base de datos grandisima

Bueno ya he visto mucho de esos ejemplos ( porque em lei todo ese manual y otros tantos que habian en esa web.

pero aun asi no entiendo por que gnzsoloyo dice que debo dividir la tabla de usuarios en mas tablas, yo veo que todos los campos depende unicamente del campo ID_usuario ( excepto el campo region que si depende del pais ).

de nuevo muchas gracias
__________________
SEO en Medellin
  #18 (permalink)  
Antiguo 21/04/2008, 18:58
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Re: Manejar con php una base de datos grandisima

Al parecer no entiendes muy bien los conceptos de normalización
ejemplo:
Cita:
`educador`
`empleador`
`casero`
`familia`
`estudiante`
imagino que están haciendo referencia al estado o tipo de usuario, si es así esos datos son candidatos para estar en otra tabla, ejemplo tipo_usuario, y así puedes sacar región, país, biografía (ya que lo trabajas en 2 idiomas), etc

De esa manera vas normalizando tus datos, y por lo que veo tienes muchos datos que separar.

Trata de entender el concepto.

Si no normalizas las tablas tu sistema no va ser escalable y el rendimiento no va ser optimo
Saludos
  #19 (permalink)  
Antiguo 24/07/2008, 12:24
Avatar de Gerifaltus  
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 180
Antigüedad: 18 años, 9 meses
Puntos: 4
Respuesta: Re: Manejar con php una base de datos grandisima

Cita:
Iniciado por Genetix Ver Mensaje
Al parecer no entiendes muy bien los conceptos de normalización
ejemplo:

imagino que están haciendo referencia al estado o tipo de usuario, si es así esos datos son candidatos para estar en otra tabla, ejemplo tipo_usuario, y así puedes sacar región, país, biografía (ya que lo trabajas en 2 idiomas), etc

De esa manera vas normalizando tus datos, y por lo que veo tienes muchos datos que separar.

Trata de entender el concepto.

Si no normalizas las tablas tu sistema no va ser escalable y el rendimiento no va ser optimo
Saludos
Lo que indica Genetix es verdad, debes normalizar tus tablas, la tabla de usuarios es muy grande, no la revisé a pronfundidad, pero con el solo hecho de verla de un vistazo me doy cuenta que debebes separar esa tabla en tres o más tablas.

Algo que aprendí en cuanto a base de datos es que no debes mezclar "entidades" en una sola tabla, una entidad es como si fuera una persona, cosa u objeto y que de él se desprenden otras caracteristicas (campos) propios ó inherentes a ese objeto, por lo tanto si logras identificar un objeto que tiene sus propias caracteristicas entonces ese objeto debe ir en otra tabla. Lo que te comento es una forma de normalizar una bd.

Hay otra forma un poco más lógica y conlleva a hacerte preguntas tales como (por ejemplo en tu tabla indicas campos para msn, yahoo,icq, skype):

¿1 usuario puede tener varios correos (haciendo referencia a que puede tener msn, yahoo, icq, etc)?, si es así entonces puede haber otra tabla llamada correos relacionada por el idUsuario, de esta manera eliminas 4 campos de la tabla usuarios.

OK, esta es mi humilde opinión, Saludos
__________________
:::.. Todo tiene un ¿Por qué? y un ¿Para qué? ..:::
:::.. Todo se reduce a un SI y a un No ..:::
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 10:45.