viernes, 15 de abril de 2016

Migraciones en Laravel 5.x

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.
Framework Laravel
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:
Screenshot_2
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().
Screenshot_6
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:
Screenshot_7-1
o desdoblarla totalmente:
Screenshot_8
También podemos definir una llave única compuesta de dos campos:
Screenshot_9
De la misma manera, podemos crear claves primarias compuestas:
Screenshot_12

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

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

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

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

Screenshot_20

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:
Screenshot_21

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