-- 
-- SQL script for databasen til webapplikasjon for er-modellering med fasit.
-- Forfatter: Håvard Myrbakken
--





-- --------------------------------------------------------

--
-- Dropper tabellene hvis de eksisterer
--

--
-- Tabellstruktur tabell `Oppgave`
--

CREATE TABLE IF NOT EXISTS `oppgave` (
  `oppgaveId` int NOT NULL AUTO_INCREMENT,
  `tittel` varchar(140) NOT NULL,
  `tekst` blob NOT NULL,
  `fasit` blob NOT NULL,
  `forfatter` varchar(255) NOT NULL,
  `komplett` boolean NOT NULL,
  `offentlig` boolean NOT NULL,
  `maxSum` int,
  PRIMARY KEY (oppgaveId)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Tabellstruktur tabell `besvarelse`
--
CREATE TABLE IF NOT EXISTS `besvarelse` (
  `besvarelseId` int AUTO_INCREMENT NOT NULL,
  `brukerId` VARCHAR(255) NOT NULL,
  `oppgaveId` INT NOT NULL,
  `besvarelse` BLOB NOT NULL,
  `straffepoeng` int,
  `antallForsok` int,
  `komplett` boolean,
  `nivå` int,
  PRIMARY KEY (besvarelseId)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `resultat` (
  `resultId` int AUTO_INCREMENT NOT NULL,
  `oppgaveId` INT NOT NULL,
  `brukerId` VARCHAR(255) NOT NULL,
  `poengsum` int,
  PRIMARY KEY (resultId)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `obligOppgave` (
  `obligId` int AUTO_INCREMENT NOT NULL,
  `oppgaveId` INT NOT NULL,
  `skole` varchar(255) NOT NULL,
  `emne` varchar(255) NOT NULL,
  `emneansvarlig` varchar(255) NOT NULL,
  `oppgTittel` varchar(255) NOT NULL,
  `oppgTekst` varchar(255) NOT NULL,
  `studListe` varchar(255) NOT NULL,
  `openFrom` datetime,
  `openTo` datetime,
  `administrator` VARCHAR(255) not null,
  `modellType` int not null,
  PRIMARY KEY (obligId)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `obligBesvarelse` (
  `besvarelseId` int AUTO_INCREMENT NOT NULL,
  `obligId` INT NOT NULL,
  `epost` varchar(140) NOT NULL,
  `besvarelse` BLOB NOT NULL,
  `poengsum` int not null,
  `straffepoeng` int,
  `antallForsok` int,
  `komplett` boolean,
  `nivå` int,
  PRIMARY KEY (besvarelseId)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Legg til fremmednøkler
--
ALTER TABLE `oppgave`
  ADD CONSTRAINT oppgave_bruker_FK FOREIGN KEY (forfatter) REFERENCES bruker (brukernavn);

ALTER TABLE `obligOppgave`
	ADD CONSTRAINT obligOppgave_oppgave_fk FOREIGN KEY (oppgaveId) REFERENCES oppgave (oppgaveId),
	ADD CONSTRAINT obligOppgave_bruker_fk FOREIGN KEY (administrator) REFERENCES bruker (brukernavn);
	
ALTER TABLE `obligBesvarelse`
	ADD CONSTRAINT obligBesvarelse_obligOppgave_fk FOREIGN KEY (obligId) REFERENCES obligOppgave (obligId);


ALTER TABLE `besvarelse`
  ADD CONSTRAINT besvarelse_bruker_FK FOREIGN KEY (brukerId) REFERENCES bruker (brukernavn),
  ADD CONSTRAINT besvarelse_oppgave_FK FOREIGN KEY (oppgaveId) REFERENCES oppgave (oppgaveId);

 ALTER TABLE `resultat`
  ADD CONSTRAINT resultat_besvarelse_FK1 FOREIGN KEY (brukerId) REFERENCES bruker (brukernavn),
  ADD CONSTRAINT resultat_besvarelse_FK2 FOREIGN KEY (oppgaveId) REFERENCES oppgave (oppgaveId);


