Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Diseñar base de datos

Estas en el tema de Diseñar base de datos en el foro de Bases de Datos General en Foros del Web. Pues estoy diseñando una base de datos pero me surgieron unas dudas, ojalá me pudieran ayudar. La primer duda (tal vez muy tonta y básica), ...
  #1 (permalink)  
Antiguo 13/06/2011, 22:52
 
Fecha de Ingreso: junio-2005
Ubicación: México, México
Mensajes: 429
Antigüedad: 18 años, 10 meses
Puntos: 1
Diseñar base de datos

Pues estoy diseñando una base de datos pero me surgieron unas dudas, ojalá me pudieran ayudar.

La primer duda (tal vez muy tonta y básica), pero es: ¿cómo relaciono dos tablas?. Por ejemplo:

Cita:
Se tienen varios hoteles, con sus datos, cada hotel tiene cuartos, dichos cuartos también tienen sus datos.
Me imagino que necesito crear dos tablas, una de hoteles (con sus propiedades) y una de cuartos (con sus propiedades). Ahora, para unirlos, ¿necesito que alguno de los dos (o los dos) tengan un "atributo especial" para unirlos?. En la tabla "hoteles" ¿necesito tener un atributo llamado "cuartos" que esté "conectado" a la tabla "cuartos"? y, en la tabla "cuartos", ¿necesito tener un atributo llamado "hoteles" que se conecte con la tabla "hoteles"?

¿A eso es a lo que le llaman "Clave foránea"?

O sea, cada que quiera relacionar dos entidades, ¿necesito crear una "Clave foránea" para crear la relación?. ¿O cómo se hace?


Y mi otra duda es, por ejemplo, me dicen (este es otro ejemplo): En un lugar hay Trabajadores, dichos trabajadores pueden ser Administrativos o Docente, dentro de los docentes puede haber Catedráticos o Profesores (que dan clases regulares en el salón), en caso de que sea Profesor, tendrá una materia asignada. Ahí me confundo.

Sé que tengo que crear una tabla "Trabajadores", dentro de esa tabla, me imagino que necesito un atributo llamado "tipo" (para indicar qué tipo de trabajador es), ahora, mi duda viene ahí.

Por un lado, si es un Administrador, en el atributo "tipo" sólo tengo que indicar que es "Administrador", pero en caso de que sea "Docente", además de indicar eso, tengo que indicar si es "Profesor" o "Catedrático", y, además de eso, en caso de que sea "Profesor", tengo que indicarle su "materia". A lo que voy es que, a partir del atributo "tipo" de "Trabajadores" empieza a "ramificarse" y no sé si crear una tabla especial para los "Profesores" (con su atributo "materia") o ¿no es necesario? ¿Alguna recomendación?

Ojalá me puedan ayudar. Muchas gracias de antemano y perdón por lo extenso del mensaje.
  #2 (permalink)  
Antiguo 14/06/2011, 06:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Diseñar base de datos

Te aconsejo que busques manuales o los propios apuntes de clase...

Hoteles
idHotel PK
Nombre
...otros atributos...

Cuartos
idCuarto PK
Numero
idHotel FK references Hoteles.idHotel
...otros atributos...

y ya tienes la relacion creada, en este caso una relacion 1:n puesto que un hotel puede tener n cuartos y un cuarto solo puede tener un hotel. Si entiendes esto podrás resolver los demas...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 14/06/2011, 09:18
 
Fecha de Ingreso: junio-2005
Ubicación: México, México
Mensajes: 429
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: Diseñar base de datos

Muchas gracias! algo así me imaginaba. La verdad es que estudié informática (carrera técnica), pero siempre he conseguido trabajos administrativos y muchas cosas ya se me olvidaron. Ahorita estoy apoyando a una persona con esto pero ya no recordaba bien cómo se hacía.

Aunque aún me queda la otra duda. ¿Qué pasa cuando se empieza a ramificar con entidades tan pequeñas?:

Cita:
Y mi otra duda es, por ejemplo, me dicen (este es otro ejemplo): En un lugar hay Trabajadores, dichos trabajadores pueden ser Administrativos o Docente, dentro de los Docentes puede haber Catedráticos o Profesores (que dan clases regulares en el salón), en caso de que sea Profesor, tendrá una materia asignada. Ahí me confundo.

Sé que tengo que crear una tabla "Trabajadores", dentro de esa tabla, me imagino que necesito un atributo llamado "tipo" (para indicar qué tipo de trabajador es), ahora, mi duda viene ahí.

Por un lado, si es un Administrador, en el atributo "tipo" sólo tengo que indicar que es "Administrador", pero en caso de que sea "Docente", además de indicar eso, tengo que indicar si es "Profesor" o "Catedrático", y, además de eso, en caso de que sea "Profesor", tengo que indicarle su "materia". A lo que voy es que, a partir del atributo "tipo" de "Trabajadores" empieza a "ramificarse" y no sé si crear una tabla especial para los "Profesores" (con su atributo "materia") o ¿no es necesario? ¿Alguna recomendación?
Gracias de nuevo!
  #4 (permalink)  
Antiguo 15/06/2011, 00:31
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Diseñar base de datos

Aplica la misma logica y te saldrá. Para relaciones n:m necesitaras una tabla intermedia. Insisto estas preguntando cosas tan básicas que dudo que ganes tiempo con el foro, la red esta llena de buenos tutoriales.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: diseñar, bases-de-datos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:43.