Enunciado
A base de datos tendaBD serve para controlar as vendas dunha cadea de tendas. Gárdanse nela os datos das vendas que se realizan, das tendas nas que se fan as vendas, dos artigos vendidos, e dos clientes.
Diagrama E-R
As táboas desta base de datos móstranse no seguinte diagrama entidade relación deseñado con MySQL Workbench.
Descrición
Descríbense a continuación as táboas.
Táboa empregados
| Nome columna
|
Tipo
|
Null
|
Clave
|
Observacións
|
| emp_id
|
smallint unsigned
|
Non
|
Primaria
|
Identificador do empregado. Numéranse de 1 en adiante de forma automática.
|
| emp_dni
|
char(9)
|
|
|
DNI do empregado.
|
| emp_apelidos
|
varchar(100)
|
Non
|
Índice
|
Apelidos do empregado.
|
| emp_nome
|
varchar(50)
|
|
Nome do empregado.
|
| emp_enderezo
|
varchar(100)
|
|
|
Enderezo do empregado.
|
| emp_cp
|
char(5)
|
|
|
Código postal do empregado.
|
| emp_poboacion
|
varchar(60)
|
|
|
Poboación do empregado.
|
| emp_pais
|
smallint unsigned
|
|
Foránea
|
Código do país segundo a táboa de países.
|
| emp_alta
|
date
|
|
|
Data na que se deu de alta o empregado.
|
Táboa pesos
| Nome columna
|
Tipo
|
Null
|
Clave
|
Observacións
|
| peso_nome
|
char(8)
|
Non
|
|
Nome que describe o tipo de peso.
|
| peso_min
|
smallint
|
Non
|
|
Peso mínimo para ese nome.
|
| peso_max
|
smallint
|
Non
|
|
Peso máximo para ese nome.
|
Táboa clientes
| Nome columna
|
Tipo
|
Null
|
Clave
|
Observacións
|
| clt_id
|
smallint unsigned
|
Non
|
Primaria
|
Identificador do cliente. Numeraranse de 1 en adiante de forma automática.
|
| clt_cif
|
char(9)
|
|
Única
|
|
| clt_apelidos
|
varchar(100)
|
Non
|
Índice
|
Apelidos ou razón social do cliente.
|
| clt_nome
|
varchar(50)
|
|
Nome ou tipo de sociedade (SL, SA, ...) do cliente.
|
| clt_enderezo
|
varchar(100)
|
|
|
|
| clt_cp
|
char(5)
|
|
|
Código postal do cliente.
|
| clt_poboacion
|
varchar(60)
|
|
|
|
| clt_pais
|
smallint unsigned
|
|
Foránea
|
Código do país segundo a táboa de países.
|
| clt_email
|
varchar(120)
|
|
|
|
| clt_desconto
|
tinyint
|
|
|
Porcentaxe de desconto aplicable ao cliente.
|
| clt_vendas
|
smallint unsigned
|
|
|
Número de vendas feitas ao cliente.
|
| clt_ultima_venda
|
date
|
|
|
Data da última venda feita ao cliente.
|
| clt_alta
|
date
|
Non
|
|
Data na que se deu de alta ao cliente.
|
| clt_ultima_actualizacion
|
date
|
|
|
Data da última vez que se fixeron cambios nos datos do cliente.
|
| clt_baixa
|
date
|
|
|
Data na que se deu de baixa ao cliente.
|
Táboa artigos
| Nome columna
|
Tipo
|
Null
|
Clave
|
Observacións
|
| art_codigo
|
char(8)
|
Non
|
Primaria
|
Toma valores entre 1 e 200.000.
|
| art_nome
|
varchar(120)
|
Non
|
Índice
|
Nome ou descrición do artigo.
|
| art_peso
|
smallint unsigned
|
|
|
Peso en gramos. Valor numérico enteiro.
|
| art_color
|
char(20)
|
|
|
Cor do artigo
|
| art_pc
|
decimal(8,2)
|
|
|
Prezo de compra do artigo.
|
| art_pv
|
decimal(8,2)
|
Non
|
|
Prezo de venda do artigo.
|
| art_provedor
|
smallint
|
|
Foránea
|
Identificador do provedor.
|
| art_stock
|
smallint unsigned
|
|
|
Número de unidades do artigo dispoñibles no almacén.
|
| art_alta
|
date
|
Non
|
|
Data na que se deu de alta o artigo.
|
| art_baixa
|
date
|
|
|
Data na que se deu de baixa o artigo.
|
| art_ultima_actualizacion
|
date
|
|
|
Data da última vez que se fixeron cambios nos datos do artigo.
|
Táboa paises
| Nome columna
|
Tipo
|
Null
|
Clave
|
Observacións
|
| pai_id
|
smallint unsigned
|
Non
|
Primaria
|
Identificador do país. Numeraranse de 1 en adiante de forma automática.
|
| pai_isonum
|
smallint
|
|
|
Número de país segundo a norma ISO 3166-1:2013.
|
| pai_iso2
|
char(2)
|
|
|
Código de país de 2 carácteres segundo a norma ISO 3166-1:2013.
|
| pai_iso3
|
char(3)
|
|
|
Código de país de 3 carácteres segundo a norma ISO 3166-1:2013.
|
| pai_nome
|
varchar(80)
|
|
|
Nome do país.
|
Táboa proveedores
| Nome columna
|
Tipo
|
Null
|
Clave
|
Observacións
|
| prv_id
|
smallint
|
Non
|
Primaria
|
Identificador do provedor.
|
| prv_nome
|
varchar(60)
|
Non
|
|
Nome do provedor.
|
Táboa tendas
| Nome columna
|
Tipo
|
Null
|
Clave
|
Observacións
|
| tda_id
|
tinyint unsigned
|
Non
|
Primaria
|
Identificador da tenda. Numéranse do 1 en adiante de forma automática.
|
| tda_poboacion
|
varchar(60)
|
Non
|
|
Poboación na que está situada a tenda.
|
| tda_xerente
|
smallint unsigned
|
|
Foránea
|
Identificador do empregado que é xerente da tenda.
|
Táboa vendas
| Nome columna
|
Tipo
|
Null
|
Clave
|
Observacións
|
| ven_id
|
int unsigned
|
Non
|
Primaria
|
Identificador da venda. Numeraranse de 1 en adiante de forma automática.
|
| ven_tenda
|
tinyint unsigned
|
Non
|
Foránea
|
Identificador da tenda na que se fixo a venda.
|
| ven_empregado
|
smallint unsigned
|
Non
|
Foránea
|
Identificador do empregado que fixo a venda.
|
| ven_cliente
|
smallint unsigned
|
Non
|
Foránea
|
Identificador do cliente ao que se fixo a venda.
|
| ven_data
|
date
|
Non
|
|
Data e hora na que se fixo a venda.
|
| ven_factura
|
date
|
|
|
Data da factura na que se inclúe esta venda.
|
Táboa detalle_vendas
| Nome columna
|
Tipo
|
Null
|
Clave
|
Observacións
|
| dev_venda
|
int unsigned
|
Non
|
Primaria
|
Foranea
|
Identificador da venda á que corresponde a liña de detalle.
|
| dev_numero
|
tinyint unsigned
|
Non
|
|
Número da liña de detalle dentro da venda.
|
| dev_artigo
|
char(8)
|
Non
|
Foránea
|
Identificador do artigo vendido.
|
| dev_cantidade
|
smallint unsigned
|
Non
|
|
Número de unidades vendidas.
|
| dev_prezo_unitario
|
decimal(8,2) unsigned
|
Non
|
|
Prezo por cada unidade vendida.
|
| dev_desconto
|
tinyint unsigned
|
Non
|
|
Porcentaxe de desconto aplicado.
|