Código:
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