relacion 0 - n

19/08/2003 - 14:34 por Celeste | Informe spam
¿se puede crear una relacion en SQL server 0 - n?
Si la respuesta es No.
¿porque?

Si la respuesta es Si
¿COMO?



-GRACIAS

Preguntas similare

Leer las respuestas

#1 Leonardo Azpurua
19/08/2003 - 14:43 | Informe spam
"Celeste" escribió en el mensaje
news:
¿se puede crear una relacion en SQL server 0 - n?
Si la respuesta es No.
¿porque?

Si la respuesta es Si
¿COMO?



-GRACIAS



Hola, Celeste:

Una relación 0 : n es posible solo cuando n = 0

No tienes que crearla. Ya está ahi. Lo que pasa es que no la vemos.

Salud!

Leonardo
Respuesta Responder a este mensaje
#2 Miguel Egea
20/08/2003 - 09:09 | Informe spam
Creo que leonardo se refería a otra cosa, para diferenciar si es 0-n o 1-n
simplemente depende de que el campo que es constraint pueda o no ser nulo.

Si puede ser nulo la relacion es 0-n si no puede serlo es 1-n

Aquí tienes un ejemplo.

create table Partedel0o1(id int identity(1,1) not null primary key)
go
create table partedelN(id int identity(1,1) not null primary key,
idPartedel01 int ,
constraint fk_n_a_0o1 foreign key (idpartedel01) references
Partedel0o1(id))
go
insert into partedeLn (idpartedel01) values (null)
insert into partedeLn (idpartedel01) values (null)
insert into partedeLn (idpartedel01) values (null)
insert into partedeLn (idpartedel01) values (null)
insert into partedeLn (idpartedel01) values (null)
insert into partedeLn (idpartedel01) values (1)
insert into Partedel0o1 default values -- generalmente insertará un 1
insert into partedeLn (idpartedel01) values (1)
select * from partedelN
select * from partedel0o1


Saludos Cordiales
=SALVA A SQL,
MATA UN CURSOR

Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
==

"Celeste" escribió en el mensaje
news:
Pero ¿porque no se puede?


Respuesta Responder a este mensaje
#3 Miguel Egea
20/08/2003 - 14:52 | Informe spam
jeje, sin polemizar leonardo la relacion 1-N con el 1 opcional es un caso
especial, y al menos donde yo estudie se le llamaba 0 o 1 a N no es una
muchos a muchos es una uno a muchos con la parte del uno opcional. Lo que si
que es cierto es que a la que se refiere Celeste no se si es la n:m o la
1-0:n



Saludos Cordiales
=SALVA A SQL,
MATA UN CURSOR

Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
==

"Leonardo Azpurua" <l a z p u r u a g (arroba) c a n t v (punto) n e t>
escribió en el mensaje news:

"Celeste" escribió en el mensaje
news:
> Pero ¿porque no se puede?

Hola, Celeste:

Una relación 1:n es de las más frecuentes. Es la que hay entre una factura


y
sus detalles o un cliente y sus pedidos.

Las relaciones n:m son menos habituales, pero tambien te las encuentras a
cada rato. El ejemplo clásico son los alumnos y los cursos: en un curso se
matriculan n alumnos, y un alumno se matricula en m cursos.

Lo normal para esta relación es implementarla mediante una tabla extra, en
la que tienes una relación 1:n desde cada uno de los dos "maestros"


(alumnos
y cursos).

La relación 0 : n de la que te habla Miguel en su respuesta, es en


realidad
una relación n : m en el caso particular en que n = 0. Esto sólo es


posible
en una relación que no requiera integridad referencial.

¿Has pensado en algún caso concreto de relación 0:n?

Salud!

Leonardo
[MS MVP - VB]
www.lazpurua.com
azpurua<arroba>mvps<punto>org
Caracas, Venezuela

Guía de uso del foro:
http://perso.wanadoo.es/rubenvigon/foro


Respuesta Responder a este mensaje
#4 Miguel Egea
20/08/2003 - 15:03 | Informe spam
por cierto la relación 0:n que yo comento sería la que hay entre un cliente
y su forma de pago, puede no tener ninguna forma de pago convenida o tener
una (que debe existir en la tabla formas de pago)

Saludos Cordiales
=SALVA A SQL,
MATA UN CURSOR

Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
==

"Miguel Egea" escribió en el mensaje
news:
jeje, sin polemizar leonardo la relacion 1-N con el 1 opcional es un caso
especial, y al menos donde yo estudie se le llamaba 0 o 1 a N no es una
muchos a muchos es una uno a muchos con la parte del uno opcional. Lo que


si
que es cierto es que a la que se refiere Celeste no se si es la n:m o la
1-0:n



Saludos Cordiales
=> SALVA A SQL,
MATA UN CURSOR

Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
==>

"Leonardo Azpurua" <l a z p u r u a g (arroba) c a n t v (punto) n e t>
escribió en el mensaje news:
>
> "Celeste" escribió en el mensaje
> news:
> > Pero ¿porque no se puede?
>
> Hola, Celeste:
>
> Una relación 1:n es de las más frecuentes. Es la que hay entre una


factura
y
> sus detalles o un cliente y sus pedidos.
>
> Las relaciones n:m son menos habituales, pero tambien te las encuentras


a
> cada rato. El ejemplo clásico son los alumnos y los cursos: en un curso


se
> matriculan n alumnos, y un alumno se matricula en m cursos.
>
> Lo normal para esta relación es implementarla mediante una tabla extra,


en
> la que tienes una relación 1:n desde cada uno de los dos "maestros"
(alumnos
> y cursos).
>
> La relación 0 : n de la que te habla Miguel en su respuesta, es en
realidad
> una relación n : m en el caso particular en que n = 0. Esto sólo es
posible
> en una relación que no requiera integridad referencial.
>
> ¿Has pensado en algún caso concreto de relación 0:n?
>
> Salud!
>
> Leonardo
> [MS MVP - VB]
> www.lazpurua.com
> azpurua<arroba>mvps<punto>org
> Caracas, Venezuela
>
> Guía de uso del foro:
> http://perso.wanadoo.es/rubenvigon/foro
>
>


Respuesta Responder a este mensaje
#5 Leonardo Azpurua
20/08/2003 - 15:41 | Informe spam
"Miguel Egea" escribió en el mensaje
news:
jeje, sin polemizar leonardo la relacion 1-N con el 1 opcional es un caso
especial, y al menos donde yo estudie se le llamaba 0 o 1 a N no es una
muchos a muchos es una uno a muchos con la parte del uno opcional. Lo que


si
que es cierto es que a la que se refiere Celeste no se si es la n:m o la
1-0:n



Hola, Miguel.

¡Soy de un terco!

Es cierto que la relación opcional de uno a muchos (la relación mandatoria
se expresaba, si mal no recuerdo como 1+:n) es un caso especial de relación.

No creo que polemicemos sobre el punto de que cualquier cosa que sea cierta
para una relación 1+:n cuando su término izquerdo sea igual a cero, tambien
será cierto para una relación n+:m, cuando n = 0.

Mi afirmación pretendía incluir tus postulados y extenderlos a casos más
generales, donde tambien son válidos; nunca corregirte (supongo que discutir
contigo sobre BBDD es como discutir con Eduardo Morcillo sobre APIs, algo
que nunca haría).

Salud!

Leonardo
[MS MVP - VB]
www.lazpurua.com
azpurua<arroba>mvps<punto>org
Caracas, Venezuela

Guía de uso del foro:
http://perso.wanadoo.es/rubenvigon/foro
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida