Bases de Datos - Baja Lógica en Tablas Relacionadas

 
Vista:

Baja Lógica en Tablas Relacionadas

Publicado por Max Payne (2 intervenciones) el 18/07/2010 18:59:20
Quiero saber para esta Base de datos donde coloco los campos para hacer una baja lógica. Debe ser en las tablas y también en las TEAs?
El código es para SQL Server 2005 Express

create table tblpersonas
(
idpersona int identity primary key,
dni int not null,
apellido nvarchar(64) not null,
nombre nvarchar(64) not null,
direccion nvarchar(128) not null,
telefono bigint not null
);
create table tblusuariotipo
(
idusuariotipo int identity primary key,
tipo nvarchar(16) not null
);
insert into tblusuariotipo (tipo) values ('dba');
insert into tblusuariotipo (tipo) values ('periodista');
insert into tblusuariotipo (tipo) values ('editor');
create table tblusuarios
(
idpersona int not null foreign key references tblpersonas(idpersona),
idusuariotipo int not null foreign key references tblusuariotipo(idusuariotipo),
nombreusuario nvarchar(64) not null,
contraseña nvarchar(64) not null,
primary key(idpersona)
);
create table tblperiodistas
(
idpersona int not null foreign key references tblusuarios(idpersona),
seudonimo nvarchar(64) not null,
fechaingreso smalldatetime not null
primary key(idpersona)
);
create table tbleditores
(
idpersona int not null foreign key references tblusuarios(idpersona),
primary key(idpersona)
);
create table tblnotaestado
(
idestadonota int identity primary key,
estado nvarchar(16)
);
insert into tblnotaestado (estado) values ('borrador');
insert into tblnotaestado (estado) values ('finalizada');
insert into tblnotaestado (estado) values ('rechazada')
insert into tblnotaestado (estado) values ('aprobada');
create table tblnotas
(
idnota int identity primary key,
autor nvarchar(64) not null,
fechapublicacion smalldatetime,
imagen nvarchar(256),
cuerpo nvarchar(max),
titulo nvarchar(128),
idestadonota int not null foreign key references tblnotaestado(idestadonota)
);
create table tblperiodistasnotas
(
idpersona int not null foreign key references tblperiodistas(idpersona),
idnota int not null foreign key references tblnotas(idnota),
primary key (idpersona, idnota)
);
go
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Baja Lógica en Tablas Relacionadas

Publicado por Franklin Gamboa (188 intervenciones) el 21/07/2010 14:28:22
Lo creas en las tablas, puedes usar campos tipo bit, boolean, char, etc, a fin de cuentas, solo ocupas almacenar 1 o 0, verdadero o falso, (A)ctivo o (I)nactivo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Baja Lógica en Tablas Relacionadas

Publicado por Max Payne (2 intervenciones) el 21/07/2010 15:48:44
En cuales Tablas?
Por ejemplo el Periodista puede ser despedido (que sería una baja) entonces debo de dar de baja -lógica- las notas. Según este planteo. El campo debe estar en la Tabla Periodista o Persona (es una relación 1 a 1). En cuanto a las Notas el campo debe estar en esta tabla o en PeriodistasNotas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Baja Lógica en Tablas Relacionadas

Publicado por Juan Manuel Castañeda (20 intervenciones) el 22/07/2010 00:56:05
El campo para el estado del peridoista debe estar en la tabla periodista y el de las notas en la de notas.
Si el estado de la nota tiene pocos valores manéjelos con un trigger para inserción y/o modificación en la tabla notas no en una tabla aparte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar