[Php-avanzado] Tablas tesis Leandro Schereik

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Sab Mar 13 13:33:36 ARST 2010


Hola Leandro,

El vie, 12-03-2010 a las 18:57 +0000, Leandro Schereik escribió:
> Hola Leo: te paso las tablas de la tesis.

	Una recomendación general: sé más generoso con los tamaños de los
campos. Por ej, con 30 caracteres para un email, te quedás corto, igual
que para apellido y nombre, porque si es una empresa el "apellido" va a
ser largo.
	Para rutas de archivos 128 por lo menos.

	Te intercalo comentarios:

> tblusuarios
> ----------

	Estos son los usuarios? y dónde están los Clientes?
	Si estos son los Clientes, el nombre no es descriptivo, pero: dónde
están los Administradores?
	Vos me dirás "los distingo por tipo_usuario", pero de un Cliente
necesitás la CUIT, la dirección y otros datos, pero de un administrador
no... pareciera faltar una tabla.

> id               int(11)
> nombre        varchar(30)
> ape             varchar(30)
> tel              varchar(30)
> email           varchar(30)
> usuario        varchar(20)
> pass            varchar(20)
> tipo_usuario  varchar(1)  (1-admin, 2-comprador)
> 
> 
> tblarticulos
> ----------
> 
> id                  int(11)
> id_categoria    int(11)
> nombre          varchar(30)
> precio            float
> stock             int(11)
> estado           varchar(1)
> imagen1         varchar(50)
> imagen2         varchar(50)
> imagen3         varchar(50)

	Te faltaría una tabla de Estados para los Artículos, para separar el
nombre del estado del código. Esta tabla generalmente no tiene una
interfaz para ABM, pero te evita que tengas que poner por todo el código
if ($reg['estado'] == 'B') { $estado = "Producto dado de baja"; }

	Respecto a las 3 imágenes, como tu requerimiento dice que serán 3, así
está bien normalizado, ateniéndonos a la discusión de "hasta dónde
debemos normalizar".

> tblcategorias
> ------------
> 
> id           int(11)
> nombre    varchar(30)
> 
> 
> 
> tblventas
> ---------
> 
> id               int(11)
> id_articulo    int(11)
> id_usuario    int(11)
> fecha          date
> monto         float
> cantidad      int(11)

	Mmmm... hay acá varias observaciones: por un lado, el registro de las
ventas es "una foto" del momento de la venta. Con este almacenamiento,
cuando cambies el nombre de un artículo o la imagen, vas a "cambiar el
pasado". Lo mismo para los "usuarios" que parece que son en realidad el
Cliente.

	También, si esto es para cada artículo vendido, la fecha y el cliente
son una repetición, y un almacenamiento con repeticiones no está
normalizado.

	Recordá cuando planteábamos en el curso esto, con una tabla de
"cabecera" y otra de "detalles" de la factura.


> Saludos

	=mente!
-- 


Leonardo Tadei
leonardot en pegasusnet.com.ar
Pegasus Tech Supply
Tel: (+54)(+223) 471-2880
La Salle 1131 - Mar del Plata - Argentina
http://www.pegasusnet.com.ar / http://blog.pegasusnet.com.ar
http://www.prometeustech.com.ar / http://www.grupopegasus.com
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
                



Más información sobre la lista de distribución Php-avanzado