Bases de Datos - Duda de creacion de base de datos

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado su posición en 9 puestos en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Duda de creacion de base de datos

Publicado por javier (2 intervenciones) el 09/05/2018 17:24:35
Hola buenas a todos, tengo un duda que me surge quiero relacionar estas 3 tablas:

En la tabla alumno, mi clave primaria va a ser Dni_alumno, y en la tabla atencion_no_ordinario va a ser clave primaria Id_atencion, pero en mi tabla intermedia, no se que de manera declararlas, si van a ser index los dos y una de ellas va a ser primaria,nose como declararlas.

Necesito ayuda.

Un saludo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
CREATE TABLE `atencion_no_ordinaria_alumno` (
  `Dni_alumno` varchar(9) NOT NULL,
  `Id_atencion` int(2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8_spanish_ci;
 
 
 
CREATE TABLE `alumno` (
  `Dni_alumno` varchar(9) NOT NULL,
  `Nombre_alumno` varchar(50)  NOT NULL,
  `Apellidos_alumno` varchar(60)  NOT NULL,
  `Fecha_nacimiento` date NOT NULL,
  `N_hermanos` int(1) NOT NULL,
  `Grupo` varchar(1) NOT NULL,
  `Nombre_tutor` varchar(50) NOT NULL,
  `Descripcion_problemas` varchar(200) NOT NULL,
  `Problemas_convivencia` int(1) NOT NULL,
  `Tipo_relacion` varchar(50) NOT NULL,
  `Tipo_asistencia` varchar(35) NOT NULL,
  `Informacion_salud` varchar(200)  NOT NULL,
  `Optativa` int(1) NOT NULL,
    PRIMARY KEY (Dni_alumno)
) ENGINE=InnoDB DEFAULT CHARSET=utf8_spanish_ci;
 
 
 
 
CREATE TABLE `atencion_no_ordinaria` (
  `Id_atencion` int(2) NOT NULL,
  `Descripción_atencion` varchar(200) NOT NULL,
    PRIMARY KEY (Id_atencion)
) ENGINE=InnoDB DEFAULT CHARSET=utf8_spanish_ci;
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 Xavi

Duda de creacion de base de datos

Publicado por Xavi (4 intervenciones) el 09/05/2018 20:05:34
Hola Javier, es importante que cualquier tabla tenga un id entero como clave primaria... poner un varchar como clave primaria creo que es un error. El DNI si quieres, lo puedes poner como un indice si lo vas a utilizar en las búsquedas.

La tabla vinculante, yo la crearía con su propio id y lo vincularía con los id's de las tablas de alumno y atención... de esta manera, las consultas vinculantes por los indices enteros serán rápidos.
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
sin imagen de perfil
Val: 3
Ha aumentado su posición en 9 puestos en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Duda de creacion de base de datos

Publicado por javier (2 intervenciones) el 09/05/2018 20:12:51
Buenas Xavi, gracias por contestar.

Tengo varias tablas que buscan como clave primaria en dni, ya que creo me haría más fácil hacer las búsquedas, sino es así lo posible solucion que me has dado sobre mi tabla intermedia creo que he entendido que hay definir un id de tipo auto_increment y clave primaria, no se como podría ser la consulta que afecte a esta tres tablas.

Un saludo.
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

Duda de creacion de base de datos

Publicado por sandro (6 intervenciones) el 15/05/2018 22:32:03
mira lo que tu deseas es que te den el pedazo de pastel, sin acercarte a la mesa a cortarlo tu.

buscando en internet la relacion la puedes hacer muy facil, esta es la liga que te explica como
https://es.stackoverflow.com/questions/60944/es-posible-establecer-una-relación-13-o-15-en-mysql


solo escribi en mi navegador esto "mysql relaciones key" y me dio varias paginas que te indican tu busqueda, y como puedes hacerlo

saludos

pd. no sean flojos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar