Skip to content
joao2devPublic

About

Repositório criado para mostrar projeto de SQL presente no livro "introdução a Linguagem SQL"

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

DESAFIO

Você é membro da equipe da conferência SurgeTech, uma reunião de startups de tecnologia procurando publicidade e investidores. O organizador lhe incumbiu da tarefa de criar um banco de dados para gerenciar os participantes, as empresas, as apresentações, as salas e o comparecimento nas apresentações. Como esse banco de dados deve ser projetado?

ESQUEMA

Texto Alternativo

ENTIDADES

Participantes

Teremos de registrar a ID, o nome, o número de telefone, o email e o status VIP de cada participante.

CREATE TABLE ATTENDEE (
    ATTENDEE_ID INTEGER PRIMARY KEY AUTOINCREMENT,
    FIRST_NAME VARCHAR (30) NOT NULL,
    LAST_NAME VARCHAR (30) NOT NULL,
    PHONE INTEGER,
    EMAIL VARCHAR (30),
    VIP BOOLEAN DEFAULT (0)
);

Empresas

A ID, o nome, a descrição e o contato principal (que deve ser listado como participante) de cada empresa devem ser registrados.

CREATE TABLE COMPANY (
    COMPANY_ID INTEGER PRIMARY KEY AUTOINCREMENT,
    NAME VARCHAR(30) NOT NULL,
    DESCRIPTION VARCHAR(60),
    PRIMARY_CONTACT_ID INTEGER NOT NULL
); 

Apresentações

Cada período de apresentação também deve ser reservado para a empresa condutora e reservar um número de sala.

CREATE TABLE PRESENTATION (
    PRESENTATION_ID INTEGER PRIMARY KEY AUTOINCREMENT,
    BOOKED_COMPANY_ID INTEGER NOT NULL,
    BOOKED_ROOM_ID INTEGER NOT NULL,
    START_TIME TIME,
    END_TIME TIME
);
CREATE TABLE PRESENTATION_ATTENDANCE (
    TICKET_ID INTEGER PRIMARY KEY AUTOINCREMENT,
    PRESENTATION_ID INTEGER,
    ATTENDEE_ID INTEGER
);

Salas

Haverá salas disponíveis para as apresentações, e cada sala terá um número identicador, um número de andar e a capacidade de pessoas sentadas.

CREATE TABLE ROOM (
    ROOM_ID INTEGER PRIMARY KEY AUTOINCREMENT,
    FLOOR_NUMBER INTEGER NOT NULL,
    SEAT_CAPACITY INTEGER NOT NULL
);

DEFININDO CHAVES EXTERNAS

PRESENTATION.BOOKED_COMPANY_ID e PRESENTATION.ROOM_ID se conectam as chaves externas COMPANY_ID , ROOM_ID

CREATE TABLE PRESENTATION (
	PRESENTATION_ID INTEGER PRIMARY KEY AUTOINCREMENT,
	BOOKED_COMPANY_ID INTEGER NOT NULL,
	BOOKED_ROOM_ID INTEGER NOT NULL,
	START_TIME TIME,
	COMPANY_ID INTEGER,
	ROOM_ID INTEGER,
	CONSTRAINT PRESENTATION_COMPANY_FK FOREIGN KEY (COMPANY_ID) REFERENCES COMPANY(COMPANY_ID),
	CONSTRAINT PRESENTATION_ROOM_FK FOREIGN KEY (ROOM_ID) REFERENCES ROOM(ROOM_ID)
);

PRESENTATION_ATTENDEE.PRESENTATION_ID e PRESENTATION_ATTENDEE.ATTENDEE_ID se conectam as chaves externas PRESENTATION.PRESENTATION_ID , ATTENDEE.ATTENDEE_ID

CREATE TABLE PRESENTATION_ATTENDANCE (
	TICKED_ID INTEGER PRIMARY KEY AUTOINCREMENT,
	PRESENTATION_ID INTEGER,
	ATTENDEE_ID INTEGER,
	CONSTRAINT PRESENTATION_ATTENDANCE_PRESENTATION_FK FOREIGN KEY (PRESENTATION_ID) REFERENCES PRESENTATION(PRESENTATION_ID),
	CONSTRAINT PRESENTATION_ATTENDANCE_PRESENTATION_FK_1 FOREIGN KEY (PRESENTATION_ID) REFERENCES PRESENTATION(PRESENTATION_ID),
	CONSTRAINT PRESENTATION_ATTENDANCE_ATTENDEE_FK FOREIGN KEY (ATTENDEE_ID) REFERENCES ATTENDEE(ATTENDEE_ID)
);

COMPANY.PRIMARY_CONTACT_ATTENDEE_ID e se conecta com a chave externa ATTENDEE.ATTENDEE_ID .

CREATE TABLE COMPANY (
	COMPANY_ID INTEGER PRIMARY KEY AUTOINCREMENT,
	NAME VARCHAR NOT NULL,
	DESCRIPTION VARCHAR,
	PRIMARY_CONTACT_ID INTEGER NOT NULL,
	ATTENDEE_ID INTEGER,
	CONSTRAINT COMPANY_ATTENDEE_FK FOREIGN KEY (ATTENDEE_ID) REFERENCES ATTENDEE(ATTENDEE_ID)
);

About

Repositório criado para mostrar projeto de SQL presente no livro "introdução a Linguagem SQL"

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors