[Php-avanzado] Es de la clase 8.. Re: ejercicios 2 y 3 de la clase 4

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Jue Jun 3 10:02:52 ART 2010


Hola Leonardo,

El jue, 03-06-2010 a las 09:06 -0300, Leonardo Rozas escribió:
> Gente:
> 
> les envió mi primera versión de las tablas necesarias para
> cumplimentar los ejercicios Nº 2 y 3 de la clase 8.

	y qué pasó con el Nro 1 ???

> en el ejercicio Nº 2 como el enunciado dice "nombres" y "apellidos",
> como estos datos por mas que sean compuestos (Ej: Rodriguez perez
> fernandez, es un solo registro, porque es  indivisible, es ese
> Rodriguez perez fernandez, por eso esta en un solo campo, y se
> mantiene la 1FN, por lo menos para mi, idéntico caso para "nombres").

	Efectivamente, son un solo campo y estás en 1FN.
	Sería distinto el caso de que haya que guardar apellido paterno y
apellido materno, asumiendo que si hace falta el materno, será un dato
aparte.


> 2) Crear las tablas necesarias en tercera forma normal para guardar los
> siguientes datos: nombres, apellidos, dirección principal, dirección
> alternativa, teléfono, ciudad, código postal, provincia y país.
> 
> tabla Personas
> 
> id
> nombre
> apellido
> telefono
> id_domicilios

	Si estás sacando los domicilios a otra tabla, entonces el domicilio
hará referencia a la Persona y no al revés.


> tabla domicilios
> 
> id
> Direccion_principal
> Direccion_alternativa
> id_ciudades

	No funciona: cómo guardás esto si tengo un domicilio en Mar del Plata y
otro en Balcarce???

> tabla ciudades
> 
> id
> ciudad
> codigo_postal
> id_provincia
> 
> tabla provincia
> 
> id
> provincia
> id_paises
> 
> tabla paises
> 
> id
> pais

	El resto, bien.


> 3) Crear las tablas necesarias en tercera forma normal para guardar los
> siguientes datos: Nombre, Apellido, Dirección, Teléfono, e-mail,
> Pedidos, Valor del Pedido, Items del Pedido, Pago del pedido.
> 
> Tabla Cliente
> 
> id
> Nombre
> Apellido
> domicilio
> telefono
> email
> id_pedidos

	un contrasentido en el nombre: id_pedidos pareciera decir que son
varios pedidos, pero el ID puede ser solo uno.
	Por otra parte, con esta estructura solo podés guardar un pedido de
cada cliente, y evidentemente es poco útil, además de que el enunciado
dice "pedidoS".

> tabla pedido
> 
> id
> pedido
> id_productos

	Idem: esto permite un solo producto por pedido.

> tabla productos
> 
> id
> producto
> id_valores

	El valor del producto depende del producto... no va aparte.

> tabla valores
> id
> valor
> id_pago

	Si el valor es el valor del pedido, depende de la clave primaria de tu
tabla pedidos e iría ahí... pero después de eso, podemos hacer una
iteración más y ver por qué tampoco va ahí. Hace falta el resto bien
normalizado para ilustrar este punto, así que no me adelanto.

> tabla pago
> id
> pago

	Según esto, cada producto de un pedido puede tener una forma de pago
diferente, y no es la idea: generalmente se define la forma de pago de
todo el pedido.

> 4) Crear las tablas necesarias en tercera forma normal para guardar los
> siguientes datos: nombres del paciente, apellidos del paciente, fecha de
> la consulta, médico que lo atendió (nombre, apellido y especialidad),
> notas de la consulta, centro de salud (nombre, dirección, ciudad)
> ----
> 
> tabla pacientes
> 
> Nombre
> apellido
> id_medicos

	Mismo error del plural, pero sobre todo de la relación 1-a-1 en lugar
de 1-a-muchos

> tabla Medicos
> 
> id
> nombre
> Apellido
> Especialidad
> id_consultas

	Si dos médicos pueden tener la misma especialidad, acá hay una
repetición que no corresponde.
	Idem sobre el plural y el tipo de relación.

> tabla consultas
> 
> id
> fecha_consulta
> nota_consultas
> id_centro_de_salud

	Y qué médico hace la consulta?

> tabla centro de salud
> 
> id
> nombre
> direccion
> ciudad

	A seguir laburando!
-- 

Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



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