Ver Mensaje Individual
  #8 (permalink)  
Antiguo 10/07/2010, 18:53
enridp
 
Fecha de Ingreso: mayo-2005
Mensajes: 284
Antigüedad: 19 años
Puntos: 11
Respuesta: Herencia de Tablas? (Que se recomienda para tablas similares?)

Cita:
Iniciado por gnzsoloyo
Resumiendo: Son dos tablas diferentes con una cardinalidad 1:N, por lo cual la sucursal hereda la ID de la Empresa.
Si, te entiendo y estoy de acuerdo pero no se si se aplica bien a mi modelo entonces, o tal vez la aplicación está mal encarada :S
Me explico un poco mejor a ver si podes ver donde estoy haciendo lio (o tal vez para este caso si esta bien asi).
Mi idea es que la tabla guarde información util para el usuario, por eso desde ese punto de vista decidí saltearme algunos aspectos "técnicos o legales".
Supongamos un servicio similar al de las Páginas Amarillas. Me gustaría que si alguien (un profesional o comercio) desea poner varias direcciones (por ej. un albañil que señala dos posibles lugares donde encontrarlo, etc), pueda hacerlo, lo mismo un comercio, más allá del domicilio que figure en la AFIP.
Todo el sistema está orientado a la consulta del usuario y a brindarle información a este.
Con respecto a las sucursales, mi idea era que si un usuario por ej. busca una Heladeria, y esa heladería tiene otros locales en otros lugares (tal vez incluso con diferentes dueños si por ej. es una franquicia), que pueda figurar como "sucursal" esas otras heladerías. Lo mismo tal vez con las diferentes agencias de Movistar, etc.
No se que tan bien va a resultar, se me ocurrió en principio que si dos comercios tienen diferentes "dueños" entonces antes se deberia enviar una solicitud de permiso para poder colocarlo como "sucursal". En esos casos incluso tal vez ni siquiera habría "casa central".
No se si me estoy explicando bien :(
Mi objetivo es simplemente que si un usuario entra una heladeria, pueda ver las sucursales de esa heladeria tambien, y desde el punto de vista de un comercio, el comerciante que publica, que pueda indicar tambien todos sus otros locales si tiene mas de uno (o si tiene algun convenio o acuerdo con otros...)





Cita:
Iniciado por gnzsoloyo
Trata de llegar a los atributos mínimos necesarios: Calle, Numero, Barrio, Entre_Calle Altura_C1, Y_Calle, Altura_C2, Localidad, Provincia, Pais, etc.
Entonces tu propones que borre las tablas "CalleConCalle" y "CalleConNumero" y que dentro de Direcciones ponga:
Calle
Numer
Entre_Calle (esto que es? :S)
Altura_C1 (no seria esto igual a "Numero"?)
Y_Calle
Altura_C2 (dos alturas? se puede dar este caso? yo no lo tuve en cuenta)


Originalmente como te comentaba yo habia hecho un planteo similar, no tenia las tablas CalleConCalle ni CalleConNumero, y dentro de Direcciones tenia
Calle
Numero
Y_Calle

El problema era que con ese diseño probablemente me hubiese quedado en muchas filas el atributo "Y_Calle" como NULL, y tambien en muchas otras el atributo "Numero" como NULL. Y como en las reglas de diseño que lei decia que eso era malo trate de buscar una alternativa.
En este caso tu convienes no obviar las reglas y aceptar esos atributos como NULL?




Cita:
Iniciado por gnzsoloyo
Eso lo tienes que resolver, como dije, en la aplicación. La base sólo guarda datos ya validados. No tiene por qué hacer validaciones. Los lenguajes de programación tienen mñas capacidades para esa tarea.
Es que tengo miedo de abstraerme demasiado de la aplicación y que a la hora de necesitar los datos sea todo un infierno y pierda eficiencia por no haber hecho las cosas más compatibles.
De todas formas sigo sin entender como relacionarías las Localidades con las Calles.
Yo la pensé así la relación:
Las Localidades tienen muchas Calles.
Las calles pertenecen a una Localidad.
Asique dentro de la tabla Calles le pongo a que Localidad pertenece.
Pero bueno, es la primera vez que armo una BD tan grande y de este tipo asique no tengo ni idea, si pudieses indicarme como ordenarlo mejor me sería de gran ayuda.



Cita:
Iniciado por gnzsoloyo
Una entidad hereda a otra cuando no tiene PK propia, sino que usa la de la entidad superior.
Perfecto! mas claro imposible, gracias!