USE MASTER
GO
ALTER DATABASE Prescricao_Meds SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DROP DATABASE Prescricao_Meds
GO
CREATE DATABASE Prescricao_Meds
GO
USE Prescricao_Meds

CREATE TABLE MEDICO (

numSNS			      INT			NOT NULL		PRIMARY KEY,
nome				VARCHAR(25)		NOT NULL,
especialidade		VARCHAR(15)		NOT NULL
);

CREATE TABLE PACIENTE (

numUtente       INT				NOT NULL	PRIMARY KEY,
nome			VARCHAR(25)		NOT NULL,
dataNasc		DATE			NOT NULL,
endereco		VARCHAR(50)
);


CREATE TABLE FARMACIA (

nome		 VARCHAR(25)	NOT NULL	PRIMARY KEY,
telefone	 CHAR(9)		NOT NULL,
endereco     VARCHAR(50)	NOT NULL
);

CREATE TABLE PRESCRICAO (

numPresc        INT			NOT NULL		PRIMARY KEY,
numUtente       INT			NOT NULL		FOREIGN KEY REFERENCES PACIENTE(numUtente),
numMedico       INT			NOT NULL		FOREIGN KEY REFERENCES MEDICO(numSNS),
nome_farmacia   VARCHAR(25)					FOREIGN KEY REFERENCES FARMACIA(nome),
dataProc		DATE	
);


CREATE TABLE FARMACEUTICA (

numReg			INT				NOT NULL		PRIMARY KEY,
nome			VARCHAR(25),
endereco		VARCHAR(50) 
);

CREATE TABLE FARMACO (
	
numRegFarm      INT				NOT NULL	PRIMARY KEY	FOREIGN KEY REFERENCES FARMACEUTICA(numReg),
nome			VARCHAR(25)		NOT NULL		,
formula			VARCHAR(15)		NOT NULL,
);

CREATE TABLE PRESC_FARMACO(

numPresc       INT				NOT NULL		FOREIGN KEY REFERENCES PRESCRICAO(numPresc),
numRegFarm     INT				NOT NULL		FOREIGN KEY REFERENCES FARMACO(numRegFarm),
nomeFarmaco    VARCHAR(25)		NOT NULL

PRIMARY KEY (nomeFarmaco, numPresc),
	
);