From 7e8252f3a5de0e0ece712e7f3a1c5cd0d23d6b7e Mon Sep 17 00:00:00 2001 From: Eirik Th S Date: Thu, 18 Nov 2021 20:49:17 +0100 Subject: [PATCH] Modul 6 WIP --- .gitignore | 1 + modul6/forberedelser.php | 222 ++++++++++++++++++++++++- modul6/index6_1.php | 51 +----- modul6/index6_2.php | 158 ++++++++++++++++-- modul6/index6_3-tom.png | Bin 0 -> 41892 bytes modul6/index6_3.php | 26 +++ modul6/index6_3.png | Bin 0 -> 51046 bytes modul6/index6_4.php | 60 +++++++ modul6/medlemsprosjekt.sql | 331 +++++++++++++++++++++++++++++++++++++ 9 files changed, 786 insertions(+), 63 deletions(-) create mode 100644 modul6/index6_3-tom.png create mode 100644 modul6/index6_3.php create mode 100644 modul6/index6_3.png create mode 100644 modul6/index6_4.php create mode 100644 modul6/medlemsprosjekt.sql diff --git a/.gitignore b/.gitignore index 05747f4..6329aac 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ modul0 *.zip index*_6* +pma/ diff --git a/modul6/forberedelser.php b/modul6/forberedelser.php index 80a0e0b..c8be9e4 100644 --- a/modul6/forberedelser.php +++ b/modul6/forberedelser.php @@ -1,6 +1,7 @@ ${$felt} = $verdi; + if($this->{$felt} != $verdi){ + $this->{$felt} = $verdi; + $this->endret[] = $felt; + return true; + } + return false; } public function get($felt){ return $this->${$felt}; } + public function verifyMember():bool{ + return + !empty($this->fornavn) && + !empty($this->etternavn) && + !empty($this->adresse1) && + !empty($this->postnummer) && + !empty($this->epost) && + !empty($this->dob) && + !empty($this->kjoenn) && + !empty($this->medlem_siden) && + !empty($this->kontigentstatus); + } + + public function persistMember(){ + if($this->verifyMember()){ + $db = getPdoConn(); + + if(hentPoststed($this->postnummer) === false){ + if(empty($this->poststed)){ + throw new InvalidArgumentException("Kan ikke lage et poststed som ikke finnes. Sjekk at medlemmet har et oppgitt poststed."); + } + $kommuneStmt = $db->prepare("INSERT INTO Postnummer VALUES (?,?)"); + $kommuneStmt->bindValue(1, $this->postnummer); + $kommuneStmt->bindValue(2, $this->poststed); + $kommuneStmt->execute(); + } + + + $insertSQL = "INSERT INTO Medlem (fornavn, etternavn, adresse, postnummer, mobilnummer, epost, dob, kjoenn, kontigentStatus, medlemStart) VALUES (?,?,?,?,?,?,?,?,?,?);"; + + $statement = $db->prepare($insertSQL); + + $statement->bindValue(1, $this->fornavn); + $statement->bindValue(2, $this->etternavn); + $statement->bindValue(3, $this->adresse1 . "\n" . $this->adresse2); + $statement->bindValue(4, $this->postnummer); + $statement->bindValue(5, $this->mobilnummer); + $statement->bindValue(6, $this->epost); + $statement->bindValue(7, $this->dob->format("Y-m-d")); + $statement->bindValue(8, $this->kjoenn); + $statement->bindValue(9, $this->kontigentstatus); + $statement->bindValue(10, $this->medlem_siden->format("Y-m-d")); + + echo $statement->queryString; + + $statement->execute(); + +// var_dump($statement); + } + + // '{$this->fornavn}', '{$this->etternavn}', '{$this->adresse1}\n{$this->adresse2}' + + } + + public function updateMemberRow(){ + $db = getPdoConn(); + + $updateSQLValues = array(); + foreach ($this->endret as $key => $value){ + $updateSQLValues[] = "$value = ?"; + } + $sql = "UPDATE Medlem SET ".implode(', ', $updateSQLValues); + + $sql .= " WHERE medlemId = ?"; + +// $statement = $db->prepare($sql); + + // LOOP +// $statement->bindParam() + + + } } -// Caching av poststed -$poststed = array(); -function hentPoststed($postnummer): string { + +function hentPoststed($postnummer) { global $poststed; if(!$poststed[ $postnummer ]){ @@ -72,5 +160,127 @@ function hentPoststed($postnummer): string { } } - return $poststed[$postnummer] ?? "Ukjent"; + return $poststed[$postnummer] ?? false; +} +function hentMedlem($dbid){ + return hentMedlemmer(null, null, $dbid)[$dbid]; +} + +function hentMedlemmer($perSide = 20, $side = 1, $medlemId = 0){ + $sideStart = $side?($side-1)*$perSide:0; + $medlemmer = array(); + + $hentMedlemmerSQL = " + SELECT medlemId, fornavn, etternavn, adresse, m.postnummer, p.poststed, epost, dob, kjoenn, kontigentStatus, medlemStart + FROM Medlem m + INNER JOIN Postnummer p ON m.postnummer = p.postnummer + "; + if($medlemId > 0){ + $hentMedlemmerSQL .= " WHERE `medlemId` = ?"; + } + else { + $hentMedlemmerSQL .= "ORDER BY etternavn, fornavn LIMIT $sideStart,$perSide"; + } + + try { + // Åpne databasetilkobling som definert + $db = getPdoConn(); + + // Prepare and execute statement + $statement = $db->prepare($hentMedlemmerSQL); + if($medlemId > 0){ + $statement->bindValue(1,$medlemId); + } + $statement->execute(); + + // Fetchmode FETCH_ASSOC for å få med keys-verdiene + $statement->setFetchMode(PDO::FETCH_ASSOC); + $resultat = $statement->fetchAll(); + + foreach ($resultat as $row){ + $medlem = new Medlem(); + $medlem->dbid = $row['medlemId']; + $medlem->fornavn = $row['fornavn']; + $medlem->etternavn = $row['etternavn']; + $adresser = explode('\n', $row['adresse']); + $medlem->adresse1 = $adresser[0]; + $medlem->adresse2 = $adresser[1] ?? ''; + $medlem->postnummer = $row['postnummer']; + $medlem->poststed = $row['poststed']; + $medlem->epost = $row['epost']; + $medlem->dob = DateTime::createFromFormat('Y-m-d', $row['dob'] ); + $medlem->kjoenn = $row['kjoenn']; + $medlem->kontigentstatus = $row['kontigentStatus']; + $medlem->medlem_siden = DateTime::createFromFormat('Y-m-d', $row['medlemStart'] ); + + $medlemmer[$medlem->dbid] = $medlem; + } + } + catch (PDOException $e){ + echo "SQL-feil:
\n".$e; + } finally { + $db = null; + return $medlemmer; + } +} + +class Aktivitet { + public int $dbid; + public string $navn; + public string $beskrivelse; + public int $ansvarlig; + public ?DateTime $start = null; + public ?DateTime $slutt = null; + + public function __construct($dbid, $navn, $beskrivelse, $ansvarlig, $start, $slutt){ + $this->dbid = $dbid ?? 0; + $this->navn = $navn; + $this->beskrivelse = $beskrivelse; + $this->ansvarlig = $ansvarlig; + $this->start = $start ?? null; + $this->slutt = $slutt ?? null; + } +} + +function hentAktivitet($id = false){ + $aktiviteter = array(); + + $sql = "SELECT * FROM Aktivitet;"; + if($id){ + $sql = "SELECT * FROM Aktivitet WHERE aktivitetId = ?"; + } + + try { + $db = getPdoConn(); + $stmt = $db->prepare($sql); + if($id){ + $stmt->bindValue(1, $id); + } + $stmt->execute(); + $stmt->setFetchMode(PDO::FETCH_ASSOC); + $res = $stmt->fetchAll(); + foreach ($res as $row){ + $start = DateTime::createFromFormat('Y-m-d H:i:s', $row['start']) ?? null; + $slutt = DateTime::createFromFormat('Y-m-d H:i:s', $row['slutt']) ?? null; + $aktiviteter[] = new Aktivitet( + $row['aktivitetId'], + $row['navn'], + $row['beskrivelse'], + $row['ansvarligId'], + $start, + $slutt + ); + } + } + catch (PDOException $e){ + echo "SQL-feil:
\n".$e; + } + finally { + $db = null; + } + + if($id && count($aktiviteter) == 1){ + return $aktiviteter[0]; + } + return $aktiviteter; } \ No newline at end of file diff --git a/modul6/index6_1.php b/modul6/index6_1.php index 17189d2..b29d7e6 100644 --- a/modul6/index6_1.php +++ b/modul6/index6_1.php @@ -17,58 +17,15 @@ include 'forberedelser.php';

Medlemsliste

\n".$e); - } - - - $hentMedlemmer = " - SELECT medlemId, fornavn, etternavn, adresse, m.postnummer, p.poststed, epost, dob, kjoenn, kontigentStatus, medlemStart - FROM Medlem m - INNER JOIN Postnummer p ON m.postnummer = p.postnummer - ORDER BY etternavn, fornavn - LIMIT $pageStart,$perPage - "; - - try { - $statement = $db->prepare($hentMedlemmer); - $statement->execute(); - - $statement->setFetchMode(PDO::FETCH_ASSOC); - $resultat = $statement->fetchAll(); - - foreach ($resultat as $key => $row){ - $medlem = new Medlem(); - $medlem->dbid = $row['medlemId']; - $medlem->fornavn = $row['fornavn']; - $medlem->etternavn = $row['etternavn']; - $medlem->adresse1 = $row['adresse']; - $medlem->postnummer = $row['postnummer']; - $medlem->poststed = $row['poststed']; - $medlem->epost = $row['epost']; - $medlem->dob = DateTime::createFromFormat('Y-m-d', $row['dob'] ); - $medlem->kjoenn = $row['kjoenn']; - $medlem->kontigentstatus = $row['kontigentStatus']; - $medlem->medlem_siden = DateTime::createFromFormat('Y-m-d', $row['medlemStart'] ); - - array_push($medlemmer, $medlem); - } - } - catch (PDOException $e){ - echo "SQL-feil:
\n".$e; - } finally { - $db = null; - } + // Se funkjson i forberedelser.php + $medlemmer = hentMedlemmer($_GET['size'] ?? 20, $_GET['page'] ?? 1); ?> diff --git a/modul6/index6_2.php b/modul6/index6_2.php index c342e7c..1f35eac 100644 --- a/modul6/index6_2.php +++ b/modul6/index6_2.php @@ -1,8 +1,79 @@ {$name} = $_POST[$name]; + } + $medlem->postnummer = (int) $_POST['postnummer']; + $medlem->dob = DateTime::createFromFormat('Y-m-d', $_POST['dob']); + $medlem->medlem_siden = DateTime::createFromFormat('Y-m-d', $_POST['medlem_siden']); + + echo "Verified? ".($medlem->verifyMember()?"yes":"no")."
\n"; + + try { + echo "
";
+            $medlem->persistMember();
+            echo "
"; + } + catch (InvalidArgumentException $e){ + echo $e; + } + } + else { + $medlem = Medlem::getFromId($_POST['bruker_id']); + + echo $medlem->fornavn." ".$medlem->etternavn."
\n"; + + foreach (Medlem::$stringNames as $felt){ + echo "Oppdater $felt fra ".$medlem->{$felt}; + if($medlem->set($felt, $_POST[$felt])){ + echo " til ".$_POST[$felt]; + } + echo "
\n"; + } + foreach (Medlem::$intFields as $felt){ + $medlem->set($felt, (int) $_POST[$felt]); + } + foreach (Medlem::$dateFields as $felt){ + $medlem->set($felt, DateTime::createFromFormat('Y-m-d', $_POST[$felt])); + } + + echo $medlem->fornavn." ".$medlem->etternavn."
\n"; + echo "Medlem er ".($medlem->verifyMember()?"gyldig":"ugyldig")."
\n"; + echo "Endrede verdier: ".implode(', ', $medlem->endret)."
\n"; + echo "
\n"; + echo "Medlem ikke oppdatert..
\n"; + + die(); + } +} + + + ?> @@ -14,19 +85,86 @@ include 'forberedelser.php';

-

Medlemsliste

+

Registrering av nytt medlem

- - echo hentPoststed(4614)."
\n"; - echo hentPoststed(4614)."
\n"; - echo hentPoststed(4462)."
\n"; - echo hentPoststed(4614)."
\n"; - echo hentPoststed(4462)."
\n"; - echo hentPoststed(4614)."
\n"; - echo hentPoststed(4615)."
\n"; +
+ ".$e."

\n"; + } + } + + if(!empty($msg)){ + foreach ($msg as $m){ + echo "

".$m."

\n"; + } + } ?> + +
+ {$nkl}; + } + $_POST['dob'] = $_POST['dob'] ?? $medlemmer[$mid]->dob->format('Y-m-d'); + $_POST['medlem_siden'] = $_POST['medlem_siden'] ?? $medlemmer[$mid]->medlem_siden->format("Y-m-d"); + + echo ""; + } + ?> +

+ + +

+

+
+
+ +

+

+
+
+
+ +

+

+ +

+

+ +

+

+
+ +

+

+ "> +

+
diff --git a/modul6/index6_3-tom.png b/modul6/index6_3-tom.png new file mode 100644 index 0000000000000000000000000000000000000000..f26d19ff74cdd4843c5989ea25856773ff265c41 GIT binary patch literal 41892 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 Hp1=Pe<-8)Z literal 0 HcmV?d00001 diff --git a/modul6/index6_3.php b/modul6/index6_3.php new file mode 100644 index 0000000..46e8852 --- /dev/null +++ b/modul6/index6_3.php @@ -0,0 +1,26 @@ + + + + <?=title();?> + + + + +
+

+

+

Sikkerhetskopi

+ +

I denne oppgaven skal det lagres en sikkerhetskopi av databasen. Denne sikkerhetskopien har jeg da tatt av alle tabellene vi har satt opp til prosjektet på dette tidspunktet.

+ ER-diagram + +

Sikkerhetskopien er laget i phpMyAdmin.

+

Sikkerhetskopien er lagret i medlemsprosjekt.sql

+

Deretter ble databasen tømt via DROP-spørringer.

+ Tom database +

Importen av databasen gikk fint igjen gjennom PMAs Import funksjon.

+


+
+ + + \ No newline at end of file diff --git a/modul6/index6_3.png b/modul6/index6_3.png new file mode 100644 index 0000000000000000000000000000000000000000..1ce2ba3628011e0ae91d0d73bcd930750b43ee8e GIT binary patch literal 51046 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 + + + <?=title();?> + + + + +

+

+

+

Aktiviteter

+
+ + +
+ + + + + + + + + + + + + \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "\n"; + } + ?> + +
IDNavnBeskrivelseAnsvarligAktivitetens startAktivitetens slutt
".$aktivitet->dbid."".$aktivitet->navn."".$aktivitet->beskrivelse."".$aktivitet->ansvarligId."".(($temp=$aktivitet->start)?$temp->format('d. M Y H:i'):'')."".(($temp=$aktivitet->stopp)?$temp->format('d. M Y H:i'):'')."
+
+ + + + + + \ No newline at end of file diff --git a/modul6/medlemsprosjekt.sql b/modul6/medlemsprosjekt.sql new file mode 100644 index 0000000..4057c15 --- /dev/null +++ b/modul6/medlemsprosjekt.sql @@ -0,0 +1,331 @@ +-- phpMyAdmin SQL Dump +-- version 5.1.1 +-- https://www.phpmyadmin.net/ +-- +-- Host: localhost +-- Generation Time: Nov 17, 2021 at 01:24 PM +-- Server version: 10.6.5-MariaDB +-- PHP Version: 7.4.25 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `medlemsprosjekt` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `Aktivitet` +-- + +CREATE TABLE `Aktivitet` ( + `aktivitetId` int(11) NOT NULL, + `navn` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL, + `beskrivelse` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT ' ', + `ansvarligId` int(11) NOT NULL, + `start` datetime NOT NULL, + `slutt` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- Dumping data for table `Aktivitet` +-- + +INSERT INTO `Aktivitet` (`aktivitetId`, `navn`, `beskrivelse`, `ansvarligId`, `start`, `slutt`) VALUES +(1, 'Kino', 'Kinodag i kristiansand woho', 1, '2020-07-07 19:00:00', '2020-07-07 21:00:00'), +(2, 'Tur', 'Tur til kina', 1, '2021-12-07 19:00:00', '2021-07-07 21:00:00'), +(3, 'Turnering', 'Fotball Turnering', 1, '2022-07-07 19:00:00', '2022-07-07 21:00:00'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `Bruker` +-- + +CREATE TABLE `Bruker` ( + `brukerId` int(11) NOT NULL, + `epost` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `passord` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL, + `ckey` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ' ', + `ctime` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ' ' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- Dumping data for table `Bruker` +-- + +INSERT INTO `Bruker` (`brukerId`, `epost`, `passord`, `ckey`, `ctime`) VALUES +(1, 'johbirk00@gmail.com', '$2y$10$btZKVjCywJL0v5vky/r8yeYf/H5zWkfzyGghygHZr0i4nZBGrc88i', '', ''); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `Interesse` +-- + +CREATE TABLE `Interesse` ( + `interesseId` int(11) NOT NULL, + `navn` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- Dumping data for table `Interesse` +-- + +INSERT INTO `Interesse` (`interesseId`, `navn`) VALUES +(2, 'Bading'), +(3, 'Dansing'), +(1, 'Fotball'), +(4, 'Grilling'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `Interesse_register` +-- + +CREATE TABLE `Interesse_register` ( + `medlemId` int(11) NOT NULL, + `interesseId` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- Dumping data for table `Interesse_register` +-- + +INSERT INTO `Interesse_register` (`medlemId`, `interesseId`) VALUES +(1, 1), +(1, 2), +(2, 1), +(2, 3), +(3, 1), +(3, 3); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `Medlem` +-- + +CREATE TABLE `Medlem` ( + `medlemId` int(11) NOT NULL, + `fornavn` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL, + `etternavn` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL, + `adresse` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL, + `postnummer` int(4) NOT NULL, + `mobilnummer` varchar(12) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `epost` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `dob` date NOT NULL, + `kjoenn` enum('M','F','O') COLLATE utf8mb4_unicode_ci NOT NULL, + `kontigentStatus` enum('BETALT','IKKE_BETALT') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'IKKE_BETALT', + `medlemStart` date NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- Dumping data for table `Medlem` +-- + +INSERT INTO `Medlem` (`medlemId`, `fornavn`, `etternavn`, `adresse`, `postnummer`, `mobilnummer`, `epost`, `dob`, `kjoenn`, `kontigentStatus`, `medlemStart`) VALUES +(1, 'Johannes', 'Birkeland', 'Teian 6', 4462, NULL, 'johannesbi@uia.no', '2000-11-19', 'M', 'BETALT', '2019-11-11'), +(2, 'Per', 'Persen', 'Per Gaten', 4462, NULL, 'perper@uia.no', '2000-11-19', 'O', 'BETALT', '2019-11-11'), +(3, 'Lina', 'Ridley', 'En gate i krs', 4614, NULL, 'linaridley@uia.no', '2002-07-26', 'F', 'BETALT', '2019-11-11'), +(7, 'Eirik', 'Svag', 'Fergefjell\n', 4614, NULL, 'hei@padeg.no', '1996-01-18', 'M', 'BETALT', '2021-11-09'), +(8, 'Kai', 'Havn', 'Havnegata 1\n', 4606, NULL, 'kai@havn.no', '1905-01-01', 'O', 'BETALT', '2021-09-10'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `Postnummer` +-- + +CREATE TABLE `Postnummer` ( + `postnummer` int(4) NOT NULL, + `poststed` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- Dumping data for table `Postnummer` +-- + +INSERT INTO `Postnummer` (`postnummer`, `poststed`) VALUES +(1337, 'Sandvika'), +(4462, 'Hovsherad'), +(4606, 'Kristiansand'), +(4614, 'Kristiansand'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `Rolle` +-- + +CREATE TABLE `Rolle` ( + `rolleId` int(11) NOT NULL, + `rolleNavn` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- Dumping data for table `Rolle` +-- + +INSERT INTO `Rolle` (`rolleId`, `rolleNavn`) VALUES +(2, 'KURSANSVARLIG'), +(1, 'LEDER'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `Rolle_register` +-- + +CREATE TABLE `Rolle_register` ( + `medlemId` int(11) NOT NULL, + `rolleId` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- Dumping data for table `Rolle_register` +-- + +INSERT INTO `Rolle_register` (`medlemId`, `rolleId`) VALUES +(1, 1), +(1, 2), +(2, 2); + +-- +-- Indexes for dumped tables +-- + +-- +-- Indexes for table `Aktivitet` +-- +ALTER TABLE `Aktivitet` + ADD PRIMARY KEY (`aktivitetId`), + ADD KEY `ansvarligId` (`ansvarligId`); + +-- +-- Indexes for table `Bruker` +-- +ALTER TABLE `Bruker` + ADD PRIMARY KEY (`brukerId`), + ADD UNIQUE KEY `epost` (`epost`); + +-- +-- Indexes for table `Interesse` +-- +ALTER TABLE `Interesse` + ADD PRIMARY KEY (`interesseId`), + ADD UNIQUE KEY `navn` (`navn`); + +-- +-- Indexes for table `Interesse_register` +-- +ALTER TABLE `Interesse_register` + ADD PRIMARY KEY (`medlemId`,`interesseId`), + ADD KEY `interesseId` (`interesseId`); + +-- +-- Indexes for table `Medlem` +-- +ALTER TABLE `Medlem` + ADD PRIMARY KEY (`medlemId`), + ADD UNIQUE KEY `epost` (`epost`), + ADD KEY `postnummer` (`postnummer`); + +-- +-- Indexes for table `Postnummer` +-- +ALTER TABLE `Postnummer` + ADD PRIMARY KEY (`postnummer`); + +-- +-- Indexes for table `Rolle` +-- +ALTER TABLE `Rolle` + ADD PRIMARY KEY (`rolleId`), + ADD UNIQUE KEY `rolleNavn` (`rolleNavn`); + +-- +-- Indexes for table `Rolle_register` +-- +ALTER TABLE `Rolle_register` + ADD PRIMARY KEY (`medlemId`,`rolleId`), + ADD KEY `rolleId` (`rolleId`); + +-- +-- AUTO_INCREMENT for dumped tables +-- + +-- +-- AUTO_INCREMENT for table `Aktivitet` +-- +ALTER TABLE `Aktivitet` + MODIFY `aktivitetId` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; + +-- +-- AUTO_INCREMENT for table `Bruker` +-- +ALTER TABLE `Bruker` + MODIFY `brukerId` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; + +-- +-- AUTO_INCREMENT for table `Interesse` +-- +ALTER TABLE `Interesse` + MODIFY `interesseId` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; + +-- +-- AUTO_INCREMENT for table `Medlem` +-- +ALTER TABLE `Medlem` + MODIFY `medlemId` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11; + +-- +-- AUTO_INCREMENT for table `Rolle` +-- +ALTER TABLE `Rolle` + MODIFY `rolleId` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; + +-- +-- Constraints for dumped tables +-- + +-- +-- Constraints for table `Aktivitet` +-- +ALTER TABLE `Aktivitet` + ADD CONSTRAINT `Aktivitet_ibfk_1` FOREIGN KEY (`ansvarligId`) REFERENCES `Medlem` (`medlemId`); + +-- +-- Constraints for table `Interesse_register` +-- +ALTER TABLE `Interesse_register` + ADD CONSTRAINT `Interesse_register_ibfk_1` FOREIGN KEY (`medlemId`) REFERENCES `Medlem` (`medlemId`), + ADD CONSTRAINT `Interesse_register_ibfk_2` FOREIGN KEY (`interesseId`) REFERENCES `Interesse` (`interesseId`); + +-- +-- Constraints for table `Medlem` +-- +ALTER TABLE `Medlem` + ADD CONSTRAINT `Medlem_ibfk_1` FOREIGN KEY (`postnummer`) REFERENCES `Postnummer` (`postnummer`); + +-- +-- Constraints for table `Rolle_register` +-- +ALTER TABLE `Rolle_register` + ADD CONSTRAINT `Rolle_register_ibfk_1` FOREIGN KEY (`medlemId`) REFERENCES `Medlem` (`medlemId`), + ADD CONSTRAINT `Rolle_register_ibfk_2` FOREIGN KEY (`rolleId`) REFERENCES `Rolle` (`rolleId`); +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;