Portal (PHP y MySQL)

Yo tengo una consulta acerca de base de datos MySQL. Yo quiero construir un portal(en PHP) que posea varios servicios: email, foro, trivial, webdate, y otros scripts más. Ya he creado el registro de usuarios que agrega al nuevo usuario en todos los servicios de una vez, pero puede registrarse más tarde también en los otros servicios por los que opto no registrarse al comienzo.
El problema reside en que cada script(email, foro(phpbb2), trivial, etc) tiene su propia base de datos y algunos scripts tienen muchas tablas con muchos campos.
Yo quisiera saber su opinión, cual es mejor: crear una sola tabla de usuarios que tengan todos los campos de todos los scripts(para así realizar una sola conexión cuando se registra alguien) o si debo mantener las tablas de los scripts por separado. Considerando que solo el script del foro tiene 46 tablas.
Me gustaría saber su consejo si es que ya realizo algo parecido, o que piensa que me convendría(cual me ahorraría código, seria más fácil de actualizar los datos y si puede afectar a la velocidad de mi página).

2 respuestas

Respuesta
1
En mi opinión, deberías de tener una tabla donde aparecieran todos los usuarios y una serie de campos para indicar a cuales servicios tienen acceso o están dados de alta.
En tu mano queda el realizar una página de modificación de a qué servicios pueden acceder, por ejemplo, si uno no se dio de alta en el foro, pero luego quiere darse, se comprueba sobre la tabla general de usuarios y lo pasas a lo que le quede del alta para el foro.
No se si me explico, pero es que si tienes los mismos usuarios meclados en diferentes tables, puede ser un poco follón.
Has usado el PHPNuke, creo que ellos resuelven el problema de esta forma.
Espero haberte orientado!, por favor, si tienes alguna duda, no dudes en preguntarme!.
No olvides cerrar la pregunta para que otros me puedan preguntar!.
Eso es exactamente lo que tengo planeado hacer: Una sola base de datos con una tabla que tenga todos los usuarios, pero las tablas de los scripts dejo intactas y las vinculo(cuando me pide información de l usuario) a la tabla de usuarios.
Quiero evitar al máximo consultas inútiles, y ya que no tengo idea como se usan FOREIGN KEYS en MySQL estaba pensando usar JOINS.
¿Qué te parece?
Cualquiera de las dos cosas te va a valer, pero si usas solo JOINS, asegúrate de que la BD no pierde estabilidad con usuarios que se eliminan, tienen errores, aparecen en unas tablas y en otras no... Si eso lo tienes controlado, puedes evitar utilizar claves ajenas.
Respuesta
1
Yo no he realizado nada parecido, y mantener una o varias tablas de usuarios depende en cierto modo del uso que le vayan a dar, y de la forma en que quieras implementar el portal.
Por lo general solo hay que entrar una vez la contraseña y ya tienes acceso a todos los servicios en los que estés registrado, por lo que lo ideal sería tener una única base de datos de usuarios. Esto te ahorra realizar varias consultas. Solo con una consulta obtienes todos los servicios a los que tiene acceso, y como los puedes guardar en una variable de sesión, no tienes que perder el tiempo volviendo a consultar para cada acceso. Ganas bastante en velocidad, ya que los accesos a las bases de datos son muy lentos, sobretodo con muchos registros.
Eso viéndolo de forma global. Pero si lo que quieres es tener los servicios bien diferenciados y que se acceda a ellos de forma individual es mejor tener la tabla de usuarios separada cada uno con la suya. Esto te obliga a realizar varias consultas cada vez que los usuarios quieren cambiar a otro servicio, o cuando quieren actualizar sus datos. Pero si usas phpbb2 tendrá su propia tabla de usuarios, para el e-mail si no lo implementas tu también tendrás otra tabla de usuarios, etc. Tienes que valorar el trabajo que te puede dar juntarlas todas en una sola.
Desde mi punto de vista teniendo todo junto ganas en velocidad y al estar centralizado es más fácil de actualizar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas