[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