MySQL - Ayuda sobre relaciones en MYSQL!!!

 
Vista:
Imágen de perfil de David

Ayuda sobre relaciones en MYSQL!!!

Publicado por David (1 intervención) el 30/03/2016 19:17:47
Hola, necesito que alguien me ayude a como pudiera quedar las tablas y sus relaciones en una app web que estoy haciendo y los datos estan en mysql.
Es una app para una escuela que permite loguear tanto a estudiantes como profesores. Y la bd debe guardar los datos de los 2, siendo en cada caso campos distintos. Hay campos que si son comunes y hasta ahora lo tengo de esta manera: donde el pasaporte es el id en cada tabla


Tabla Usuarios:
pasaporte
nombre
apellidos
edad
username
password

Tabla Estudiantes:
pasaporte
direccion
grado

Tabla Profesores:
pasaporte
asignatura
graduado_de
telf_movil

Estube pensando en hacer una tabla intermedia de Roles pero creo q no me sirve y tengo la tabla Usuarios relacionada con la de Estudiantes con relacion 1 a 1 a traves del campo pasaporte y asi mismo la de Usuarios y Profesores y supuestamente cumple con lo que quiero, pero el problema es q me deja guardar un mismo usuario con el mismo pasaporte tanto en Estudiantes como en Profesores y debe ser solo uno de los dos.
Espero haberme explicado bien.
Agradeceria cualquier sugerencia o ayuda.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Felix
Val: 3
Ha aumentado su posición en 22 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Ayuda sobre relaciones en MYSQL!!!

Publicado por Felix (8 intervenciones) el 01/04/2016 00:38:29
Saludos!

Bueno lo primero es que no te olvides de iniciar la tabla con un campo de autoincrement (AI) que podrías llamarlo id, código, etc.

Te recomiendo que por razones de seguridad cuando vayas a hacer las consultas no vincules las tablas de "Usuarios" con las otras. Ya que lo recomendable es consultar solamente esta tabla al momento del login. Entendiendo esto lo mejor sería agregar a las otras tablas los datos personales como nombres, apellidos, edad y de esta forma al hacer las consultas se te hará mucho más sencillo ya que solo deberás consultar una tabla.

Con respecto a lo de la tabla "intermedia" no veo problema ya que estas usando "pasaporte" como valor de cotejo y eso es muy beneficioso al momento de de hacer las consultas o agregar registros en las tablas; lo importante es que siempre verifiques con un pequeño código si ese numero se encuentra o no registrado y con un if puedas tomar la decisión de lo que puedes hacer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda sobre relaciones en MYSQL!!!

Publicado por Ramiro Mejías Rodríguez (5 intervenciones) el 01/04/2016 21:58:34
La columna pasaporte de la tabla Usuario ponla como valor único para asegurar que ya sea un estudiante o un profesor solo pueda estar una sola vez en esta tabla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar