-
EL no colocar AUTO_INCREMENT a la columna que es PRIMARY KEY simplemente vuelve el proceso de asignar id a una forma manual o se puede asignar desde otra capa de negocios.
UNIQUE, la columna que tenga el constraint unique garantiza que el valor que se guarda en esa columna sea único -
-. TIMESTAMP
Está basado en el número epoch que es el 1 enero de 1970 hasta la fecha y es donde se determina el inicio de las computadoras y es un número entero que se guarda en segundos y permite hacer operaciones sobre el. -
-. DATETIME
Este tipo de datos puede guardar cualquier valor de tipo fecha sin restricción. Incluso anterior a nuestra era. es por eso que las fechas de nacimiento de usuarios debe utilizar este valor para garantizar que podemos registrarlos con la fecha adecuada. -
TIMESTAMP vs DATETIME: hay que resaltar que un, 1.TIMESTAMP “NO PUEDE HACER TODO LO DE DATETIME pero DATETIME SÍ PUEDE HACERLO DE UN TIMESTAMP”, 2.DATETIME no está guardado en segundos y no es tan eficiente para hacer cálculos.
-
-.Active
Es buena práctica no eliminar registros de una bases de datos es por ello que se crea una columna como active que es un valor booleano dicho valor sirve para para decir si el registro está activo o no. -
-. created_ad y updated_ad
Es buena práctica tener una columna que permite saber el momento exacto en el que se crea un registro o se actualiza. Este tipo de dato se comporta más como una meta-información y nos puede ayudar por ejemplo a cuántos usuarios fueron creados en una fecha en específico, saber cuando una tupla se actualizó -
created_ad Es una columna de buena práctica que permite saber cuando se creó un registro. Está utilizará un conjunto de propiedades llamada entre ella se colocará DEFAULT CURRENT_TIMESTAMP . Cuando se realiza un insert sí el valor de esta columna viene vacío colocará en la tupla el valor de la fecha en que se creó de manera automática .
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
- update_ad Es una columna de buena práctica que permite saber cuando un registro se actualiza se puede colocar ON UPDATE CURRENT_TIMESTAMP esto permite dejar un registro de la fecha actual cuando ocurre una actualización
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
/*Tabla clientes*/
CREATE TABLE `clients` (
`client_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`email` varchar(100) NOT NULL,
`birthdate` date DEFAULT NULL,
`gender` enum('M','F') DEFAULT NULL,
`active` TINYINT(1) NOT NULL DEFAULT 1,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`client_id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8;
/*Tabla transactions*/
CREATE TABLE `transactions` (
`transaction_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`book_id` int(10) unsigned NOT NULL,
`client_id` int(10) unsigned NOT NULL,
`type` enum('lend','sell') NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modified_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`finished` tinyint(1) NOT NULL DEFAULT '0',
`active` TINYINT(1) NOT NULL DEFAULT 1,
PRIMARY KEY (`transaction_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?