Migraciones en Laravel 5.x
- - Programación orientada a objetos (POO).
- - Programación en PHP.
- - Bases de datos.
Utilizando las funciones que nos proporciona el Schema Builder para poder crear, actualizar y eliminar nuestras tablas así como los distintos tipos de datos.
Ahora vamos a profundizar en los índices y motores de almacenamiento de BD utilizando el Schema Builder.
-3.png?t=1460697159344)
En las BD hacemos uso de diversos tipos de llaves para poder manejar de una manera optima las queries.
Tipos de llaves
Llaves primarias
Estas llaves son las principales para reconocer como único cada registro de nuestras tablas. Pueden ser simples (un solo campo) o compuestas (varios campos), pero cada llave primaria es única; en otras palabras, no se puede repetir el valor del campo o los campos, si esta fuese compuesta, en dos o más registros.
Llaves foráneas
Estas llaves hacen referencia a la conexión entre dos tablas.
Llaves únicas
Estas definen que un campo sea único y no se repita en dos registros de la misma tabla, sin embargo esta llave no se indexa dentro del motor de búsqueda, por lo que es manejado como un campo más.Índices
Esta llave le indica al motor de búsqueda que se indexe dicho campo para, de esta forma, realizar búsquedas más optimas.
Texto completo (Full text)
Este tipo de llave se utiliza en motores MyIsam y nos permite hacer búsquedas más rápidas en comparación de cadenas.
Creación de llaves primarias
Normalmente, para poder identificar un registro en cualquier BD, ya sea física o lógica, hacemos uso de un ID, el cual, en la mayoría de veces, es una serie de números correlativos.
Cuando queramos crear una llave primaria de este tipo, podemos hacer uso de la función increments de la siguiente manera:

Esta función nos va a crear un campo del tipo entero (int) sin signo (unsigned) autoincremental (auto_increment).
Modificadores de Columnas
Puede darse casos en los que el ID de los registros no van a ser necesariamente números enteros correlativos. Para estos casos podemos hacer uso de dos funciones: unique() y primary().

Con la primera función, unique(), estamos diciendo que el campo es una llave única mientras la segunda función define esta campo como llave primaria.
También podemos simplificar esta notación de la siguiente manera:

o desdoblarla totalmente:

También podemos definir una llave única compuesta de dos campos:

De la misma manera, podemos crear claves primarias compuestas:

Para definir un índice en nuestra tabla, hacemos uso de la función index()

Y si queremos definir una clave compuesta sería de la siguiente forma:

Cuando hacemos uso de las claves foráneas, utilizamos la siguiente función:

Cuando queramos eliminar alguna de estas llaves usaremos las siguientes funciones:




Motores de almacenamiento
MySql es uno de los gestores de base de datos más usado y posee varios motores de almacenamiento como lo son InnoDB, MyIsam, IBMDM2I, MERGE, MEMORY, etc.
Cuando creamos una tabla en laravel, esta se crea por defecto con el motor InnoDB, cuando uno quiera definir el motor que se va a utilizar una determinada tabla, se utiliza la siguiente función:

Conclusiones
Como hemos podido ver, hay diferentes llaves y diferentes formas de definirlas utilizando el Schema Builder.
En la siguiente parte se continuará con el proyecto que estábamos desarrollando a un principio.
No hay comentarios.:
Publicar un comentario