El bar apunta cada pedido
En el bar del instituto apuntan cada pedido. Iker pide un bocadillo, luego un zumo y luego una tostada.
Si escriben "Iker Mora, clase 1B" en las tres filas, repiten sus datos tres veces. El día que Iker cambie de clase, habrá que corregir tres filas.
Hay una forma mejor: guardar a Iker una sola vez.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Relación | El enlace entre dos tablas. | Un alumno y sus pedidos |
| Clave ajena | Una columna que guarda el id de una fila de otra tabla. | student_id |
| Uno a muchos | Una fila de una tabla se enlaza con muchas filas de otra. | Un alumno, tres pedidos |
| Dato repetido | El mismo dato escrito en varias filas. Es una fuente de errores. | Iker Mora tres veces |
| Enlace | El camino de un id en una tabla al mismo id en otra. | student_id 2 lleva a Iker |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Pruébalo: la tabla de alumnos
-- Cada alumno aparece una sola vez, con su id.
SELECT * FROM students;
Cada dato en un solo sitio
La solución es usar dos tablas. La tabla students guarda a cada alumno una vez. La tabla orders guarda los pedidos.
En un pedido no escribimos el nombre. Escribimos solo el id del alumno.
Lo que NO hacemos: todo en una tabla
| id | name | class_name | item | price |
|---|---|---|---|---|
| 1 | Iker Mora | 1B | bocadillo | 3.5 |
| 2 | Marta Gil | 1A | zumo | 1.5 |
| 3 | Iker Mora | 1B | zumo | 1.5 |
| 4 | Iker Mora | 1B | tostada | 2.0 |
| 5 | Nora Vidal | 1A | bocadillo | 3.5 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Pruébalo: la tabla de pedidos
-- Mira la columna student_id.
-- No es un nombre: es el número de un alumno.
SELECT * FROM orders;
La clave ajena
La columna student_id de los pedidos es una clave ajena. Se llama "ajena" porque el id no es de esta tabla: pertenece a students.
Para saber quién hizo un pedido, miras su student_id y buscas ese id en students.
Ejemplo resuelto: sigue el enlace
| Pedido | student_id | Buscas ese id en students | Quién lo pidió |
|---|---|---|---|
| 1: bocadillo | 2 | El id 2 es Iker Mora | Iker Mora |
| 2: zumo | 1 | El id 1 es Marta Gil | Marta Gil |
| 3: zumo | 2 | El id 2 es Iker Mora | Iker Mora |
| 4: tostada | 2 | El id 2 es Iker Mora | Iker Mora |
| 5: bocadillo | 3 | El id 3 es Nora Vidal | Nora Vidal |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Repaso rápido: sigue el enlace
Inténtalo
Repaso rápido: sigue el enlace
3 preguntasTus respuestas se corrigen aquí y no se guardan. Una cuenta guarda tus resultados.