Ejercicio Tienda Postgresql
Ejercicio Tienda Postgresql
productos electrónicos, empezando desde la definición de dominios y tipos hasta la creación de las
tablas con sus respectivas relaciones. Crea un script sql que contenga todas las instrucciones tanto
de creación de los tipos y tablas como la inserción de datos.
Desde la carpeta de postgres, ejecuta el comando “docker compose up” para que se inicie los
contenedores con la base de datos PostgreSQL y la herramienta administrativa “pgAdmin4”.
Crea una base de datos llamada “tienda” con pgAdmin4, abre un editor SQL que usarás para ir
editando y ejecutando el script que creará las tablas y tipos en esta base de datos.
Ejercicio: Creación de una Base de Datos para una
Tienda de Productos Electrónicos
En algunos casos se indica parte de la solución debiendo sustituir ?? por lo que corresponda.
• type_divisa como un tipo enumerado con valores 'USD', 'EUR', 'MXN', 'CAD',
'JPY'.
Cuando definimos tipos complejos no podemos especificar restricciones. Por ejemplo, no podemos
especificar “cantidad check (cantidad >= 0)”.
• productos:
• id como un número de serie (SERIAL) y clave primaria (PRIMARY KEY).
• nombre como una cadena de texto (VARCHAR) de longitud máxima 20, no
puede ser nulo (NOT NULL).
• descripcion como un campo de texto (TEXT) para describir el producto.
• precio como el tipo compuesto type_dinero para representar el precio del
producto.
• televisores (que hereda de productos):
• tamano como el dominio type_pulgadas para representar el tamaño del
televisor en pulgadas.
• resolucion como un campo de texto (TEXT) para describir la resolución del
televisor.
• eficiencia como el dominio eficiencia_energetica para representar la
eficiencia energética del televisor.
CREATE TABLE televisores (
tamano type_pulgadas,
resolucion TEXT,
eficiencia eficiencia_energetica
) INHERITS (??);
• facturas:
• id como un número de serie (SERIAL) y clave primaria (PRIMARY KEY).
• cliente_id como un número entero (INTEGER) que hace referencia al id del
cliente en la tabla clientes.
• fecha como un campo de fecha y hora (TIMESTAMP) con el valor por
defecto (DEFAULT) como la fecha actual.
• total como el tipo compuesto type_dinero para representar el total de la
factura. Por defecto 0 euros (EUR)