Como relaciono?

01/12/2003 - 15:01 por Arnold | Informe spam
Una tabla Carreras (Carreras que da una facultadad) y otra
tabla Materias.

Como hago para relacionarlos, para que cuando llame a una
Carrera se llamen todas las materias relacionadas a el?
Si pongo en la tabla Materias un idCarrera no tendria que
ponerlo por cada Carrera?
La verdad no me sale la logica.

Gracias

Preguntas similare

Leer las respuestas

#1 Accotto Maximiliano D.
01/12/2003 - 15:11 | Informe spam
hola!! una materia puede estar en mas de una carrera verdad? entonces no
podes poner el id de la carrera en la materia.

Como lo haria yo!!

Generaria una tabla intermedia llamada (carreras_materias por ej)

Donde tendria 2 campos

Materia_id y Carrera_id

y aca armo la relacion Materia_carrera.

Estos 2 campos deberias agregarle una clave forania asi mantenes la
integridad de datos.

Un saludo enorme

Maximiliano Damian Accotto
"Arnold" escribió en el mensaje
news:087c01c3b813$9fdbd6e0$
Una tabla Carreras (Carreras que da una facultadad) y otra
tabla Materias.

Como hago para relacionarlos, para que cuando llame a una
Carrera se llamen todas las materias relacionadas a el?
Si pongo en la tabla Materias un idCarrera no tendria que
ponerlo por cada Carrera?
La verdad no me sale la logica.

Gracias
Respuesta Responder a este mensaje
#2 Anonimo
01/12/2003 - 16:30 | Informe spam
Gracias por la ayudita
Entonces se supone que en la tabla carrera_materias
tendria que poner:carrera 1 materia 2
carrera 1 materia 6
carrera 1 materia 9
carrera 2 materia 2
carrera 2 materia 5
carrera 2 materia 8
etc

Cuales serian los campos?
idCarrera idMateria, Cual seria el unico aca?
Y Como lo traeria, porque recien empiezo con esto de Sql
Gracas
Respuesta Responder a este mensaje
#3 Maximiliano Damian Accotto
01/12/2003 - 16:43 | Informe spam
hola! la cosa es algo asi como:

en esa tabla no pongo unicos (porque una carrera se va a repetor y una
materia tambien)

loq hago son 2 campos

Carrera_id, materia_id

Entonces quedaria algo asi como:

Carrera_id Materia_id
1 100
1 200
1 300
2 100
2 500
2 300

Si queres hacer por ej q en una misma carrera no se dupliquen las materias
podrias agregar un nuevo campo q sea la suma de Carrera_id + Materia_id y a
este campo si lo haces unico (se entiende?)

Ademas de esta tabla necesitas la tabla de Carrera y Materia (donde cada una
tendra un ID unico)

Si uno quiere ver esta carrera q materias tiene podrias hacer esta consulta
por ej:

Select carrera.id,carrera.nombre,materias.nombre From carrera inner join
Carrera_materia on
Carrera.id = carrera_materia.carrera_id
inner join materias on
carrera_materia.materia_id = materias.id
where carrera.id = 'LIC EN SISTEMAS'

esta seria una forma

Suerte


Maximiliano Damian Accotto
escribió en el mensaje
news:08f201c3b820$0fbf37c0$
Gracias por la ayudita
Entonces se supone que en la tabla carrera_materias
tendria que poner:carrera 1 materia 2
carrera 1 materia 6
carrera 1 materia 9
carrera 2 materia 2
carrera 2 materia 5
carrera 2 materia 8
etc

Cuales serian los campos?
idCarrera idMateria, Cual seria el unico aca?
Y Como lo traeria, porque recien empiezo con esto de Sql
Gracas
Respuesta Responder a este mensaje
#4 Arlond
01/12/2003 - 17:10 | Informe spam
Bien, gracias. Pero me gustaria entender lo que hago.
Porque pones carrera.id por que el "." si no te referis a
la tabla en el FROM ? Y que seria inner join ?
Y la ultima por que pusiste Where carrera.id = 'LIC EN
SISTEMAS' el id no es un numero? :(

HELP
Respuesta Responder a este mensaje
#5 Maximiliano Damian Accotto
01/12/2003 - 17:20 | Informe spam
me parece muy pero muy bien q quieras entender lo q haces!! te felicito!!

entonces vayamos a la explicacion

Cuando uno une tablas (yo por lo menos) uso para llamar a un campo el nombre
de la tabla seguido del punto y nombre del campo (esto permite q si unis por
ej 2 tablas q algun campo se repite como nonbre el SQL sepa a cual te estas
refiriendo)

Bien El inner join une tablas (join es de unir) vincular.

un id no siempre es un numero, para mi un id es un campo llave (por eso lo
llamo id)

Por ej: vos podrias hacer q las carreas tengan un codigo de carrera verdad?
yo no uso aca numerico sino char asi por ej si una carrera se llama: F101 te
lo permita hacer!! y este es el ID.

No confundas ID con identity o autoincremental, en Access si no definis
ningun indice te pregunta si lo queres hacer y genera un campo id
(autoincremental)

Pero para mi un id es mucho mas q eso.

por ej, si tengo un tabla de articulos y otra de clientes yo llamo ID al
codigo de estos!!

En otras palabras para mi un ID es mi campo llave y cuando uso tablas q
hacen referencias a un ID como nomenglaturo uso: Nombre_tabla_id

un ej:

Tabla materias

Id
Nombre
Profesores

Tabla Carreras
Id
Nombre
Duracion

Tabla_materias_carreras
materias_id
Carreras_id

Un saludo enorme

Maximiliano Damian Accotto
[]
"Arlond" escribió en el mensaje
news:05d601c3b825$9649b720$
Bien, gracias. Pero me gustaria entender lo que hago.
Porque pones carrera.id por que el "." si no te referis a
la tabla en el FROM ? Y que seria inner join ?
Y la ultima por que pusiste Where carrera.id = 'LIC EN
SISTEMAS' el id no es un numero? :(

HELP
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida