Duda: Como hacer las relaciones de las tablas en SQLite, bueno pues el detalle es que tengo una gran duda y es como hacer las relaciones de varias tablas con las bases de datos SQLite, se que con las bases de datos SQLite3 se usa un triggers, pero igualmente no lo manejo para nada y pues me gustaría ver si alguno de ustedes me podría echar una mano.
Dejo aquí un script que tengo pero de SQLite3
SQLite relacionar tablas con triggers
SQLITE NO IMPLEMENTA NATIVAMENTE INTEGRIDAD RELACIONAL PERO PUEDE LOGRARSE DEFINIENDO TRIGGERS, EN INSERCIÓN, ACTUALIZACIÓN Y BORRADO. VEAMOS UN EJEMPLO CON VARIAS TABLAS
Bueno este script lo encontré googleando pero no le entiendo jejej, haber si alguien me puede echar una mano con esta duda, gracias de antemano por su tiempo.
Dejo aquí un script que tengo pero de SQLite3
SQLite relacionar tablas con triggers
SQLITE NO IMPLEMENTA NATIVAMENTE INTEGRIDAD RELACIONAL PERO PUEDE LOGRARSE DEFINIENDO TRIGGERS, EN INSERCIÓN, ACTUALIZACIÓN Y BORRADO. VEAMOS UN EJEMPLO CON VARIAS TABLAS
=========================================================
La tabla PELICULAS tiene dependencia de otras dos:
GENERO y SOPORTE.
Los triggers antes de insert y antes de update
on Peliculas tienen en cuenta estas dos dependencias.
Para antes de delete hacen falta dos triggers:
uno en Genero y otro en Soporte.
Estos triggers impiden que se pueda borrar un
genero o un soporte, si hay peliculas que lo están
usando.
El código deja claro lo que se haría si la
dependencia fuera de más tablas,sólo habría que
añadir más OR y los triggers on delete.
Si la dependencia fuera solo de una tabla,se
quitaría un OR y el delete que sobre.
CREATE TABLE [genero] (
[id_gen] INTEGER PRIMARY KEY NOT NULL,
[nombreGen] VARCHAR(40) UNIQUE NOT NULL
);
CREATE TABLE [soporte] (
[id_sop] INTEGER NOT NULL PRIMARY KEY,
[nombreSop] VARCHAR(20) UNIQUE NOT NULL
);
CREATE TABLE [peliculas] (
[id_pel] INTEGER NOT NULL PRIMARY KEY,
[id_genero] INTEGER NOT NULL,
[id_soporte] INTEGER NOT NULL,
[nombrePel] VARCHAR(40) NOT NULL
);
CREATE TRIGGER film_pel_in before insert on peliculas
for each row
begin
select case
when
(
(new.id_soporte is not null)
and
(new.id_genero is not null)
and
(
((select id_sop from soporte where
id_sop =new.id_soporte) is null)
or
((select id_gen from genero where
id_gen = new.id_genero) is null)
)
)
then raise(abort,'violacion integridad')
end;
end;
CREATE TRIGGER film_pel_up before update on peliculas
for each row begin
select case
when
(
((select id_sop from soporte where
id_sop = new.id_soporte) is null)
or
((select id_gen from genero where
id_gen = new.id_genero) is null)
)
then raise(abort,'violacion integridad')
end;
end;
CREATE TRIGGER film_sop_de before delete on soporte
for each row begin
select case
when
((select id_soporte from peliculas
where id_soporte = old.id_sop) is not null)
then raise(abort,'violacion integridad')
end;
end;
CREATE TRIGGER film_gen_de before delete on genero
for each row begin
select case
when
((select id_genero from peliculas
where id_genero = old.id_gen) is not null)
then raise(abort,'violacion integridad')
end;
end;
Bueno este script lo encontré googleando pero no le entiendo jejej, haber si alguien me puede echar una mano con esta duda, gracias de antemano por su tiempo.