Antes de nada saludos a todos los integrantes de este comunidad. soy nuevo en
el mundo MSSQL y como veran con
muchas dudas. Gracias a todos de antenamano . Y bueno necesitaría que
si alguien me podría orientar en un error en el diseño de una BD. Utilizo:
Lenguaje: VB 6.0
SGBD: MS Sql Express 2005 .
Administrador SGBD: SQL Server Management Studio Express.
Tablas:
Provincias
ID_PROV (CP)
……….
Promotores
ID_PROM (CP)
ID_PROV (CF)
………….
Socios
ID_SOCIO (CP)
ID_PROM (CF)
ID_PROV (CF)
………….
Relación:
1) Provincia – 1:M – Socios (Una "Provincia" tiene Muchos "Socios")
(Update en Cascada; Delete No Action)
2) Provincia – 1:M – Promotor (Una "Provincia" tiene Muchos "Promotores")
(Update en Cascada; Delete No Action)
3) Promotor – 1:M – Socios (Un "Promotor" tiene Muchos "Socios")
(Update en Cascada; Delete No Action)
Todo marcha bien hasta la generación de la relación Nº 3. Me entrega
el siguiente error:
- No se puede crear la relación 'FK_Socios_Promotores'.
Si especifica la restricción FOREIGN KEY 'FK_Socios_Promotores' en la
tabla 'Socios', podrían producirse ciclos o múltiples rutas en
cascada. Especifique ON DELETE NO ACTION o UPDATE NO ACTION, o bien
modifique otras restricciones FOREIGN KEY.
No se pudo crear la restricción. Consulte los errores anteriores.
(A tener en cuenta, EL ID_PROV (Id de provincia) del promotor no es el mismo
a la de la persona que el mismo asocio).
La verdad yo use estas relaciones en Ms Access y MySQL y no tuve
problema en la generación de las mismas. La verdad no se si me perdí
de algún concepto, pero bueno, sigo buscando info en los buscadores.
Por alli vi que hay dos maneras de implementar la integridad referencial
una de ellas es la forma clasica, como la estoy intentando yo y la otra es a
partir de disparadores. La verdad no conozco la ventaja de uno sobre otro. Si
alguien tiene alguna idea/opinión les agradecería. Desde
ya Muchisimas Gracias. Saludos Pablo N.
Leer las respuestas