Demo entry 4022584

test2.sql

   

Submitted by anonymous on Mar 13, 2016 at 15:59
Language: SQL. Code size: 4.0 kB.

-- Getest met sqlite3 3.8.7.4 2014-12-09 01:34:36 f66f7a17b78ba617acde90fc810107f34f1a1f2e
CREATE TABLE Persoon (
	lidnummer			INTEGER PRIMARY KEY,
	voornaam			VARCHAR(30),
	tussenvoegsel		VARCHAR(15),
	achternaam			VARCHAR(55), -- langste achternaam in Nederland is 51 tekens
	gebDatum			DATE,
	vastTelefoon		VARCHAR(15), -- E.164 maximale lengte
	mobTelefoon			VARCHAR(15),
	mailAdres			VARCHAR(256),
	mobOuder			VARCHAR(15) NULL,
	mailOuder			VARCHAR(256) NULL,
	aantekening			TEXT,
	isLid				BOOLEAN
);

CREATE TABLE Lid (
	patrouille			VARCHAR(30),
	positie				INTEGER,
	lidnummer			INTEGER PRIMARY KEY,
	FOREIGN KEY(lidnummer) REFERENCES Persoon(lidnummer)
);

CREATE TABLE Leiding (
	heeftRijbewijs		BOOLEAN,
	heeftEHBO			BOOLEAN,
	lidnummer			INTEGER PRIMARY KEY,
	FOREIGN KEY(lidnummer) REFERENCES Persoon(lidnummer)
);

CREATE TABLE Gebruiker (
	gebruikersnaam		VARCHAR(64),
	wachtwoord			CHAR(76),	
	-- Gekozen lengte is langste lengte van bCrypt-salt + parameters
	isActief			BOOLEAN,
	isAdmin				BOOLEAN,
	lidnummer			INTEGER,
	PRIMARY KEY(gebruikersnaam),
	FOREIGN KEY(lidnummer) REFERENCES Persoon(lidnummer)
);

CREATE TABLE Kamp (
	kampID				INTEGER PRIMARY KEY,
	kampNaam			VARCHAR(50),
	kampStartdatum		DATE,
	kampEinddatum		DATE,
	lidKampgeld			INTEGER, -- in cent
	leidingKampgeld		INTEGER
);

CREATE TABLE Inschrijving (
	lidnummer			INTEGER,
	kampID				INTEGER,
	isOrganisator		BOOLEAN,
	moetBetalen			BOOLEAN,
	heeftBetaald		BOOLEAN,
	FOREIGN KEY(lidnummer) REFERENCES Persoon(lidnummer),
	FOREIGN KEY(kampID) REFERENCES Kamp(kampID),
	PRIMARY KEY(lidnummer, kampID)
);

CREATE TABLE Subgroep (
	subgroepID			INTEGER PRIMARY KEY,
	subgroepNaam		VARCHAR(50),
	kampID				INTEGER,
	UNIQUE(kampID, subgroepNaam),
	FOREIGN KEY(kampID) REFERENCES Kamp(kampID)
);

CREATE TABLE InSubgroep (
	lidnummer			INTEGER,
	subgroepID			INTEGER,
	FOREIGN KEY(lidnummer) REFERENCES Persoon(lidnummer),
	FOREIGN KEY(subgroepID) REFERENCES Subgroep(subgroepID),
	PRIMARY KEY(lidnummer, subgroepID)
);

CREATE TABLE Activiteit (
	activiteitID		INTEGER PRIMARY KEY,
	kampID				INTEGER,
	activiteitNaam		VARCHAR(50),
	actBeschrijving		VARCHAR,
	actCategorie		VARCHAR(50),
	isZichtbaar			BOOLEAN,
	aanvang				DATETIME,
	afloop				DATETIME,
	maxScore			INTEGER,
	FOREIGN KEY(kampID) REFERENCES Kamp(kampID)
);

CREATE TABLE Score (
	activiteitID		INTEGER,
	subgroepID			INTEGER,
	punten				INTEGER,
	FOREIGN KEY(activiteitID) REFERENCES Activiteit(activiteitID),
	FOREIGN KEY(subgroepID) REFERENCES Subgroep(subgroepID),
	PRIMARY KEY(activiteitID, subgroepID)
);

CREATE TABLE Prijs (
	prijsID				INTEGER PRIMARY KEY,
	prijsNaam			VARCHAR(50),
	uitgereikt			DATE,
	kampID				INTEGER,
	FOREIGN KEY(kampID) REFERENCES Kamp(kampID)
);

CREATE TABLE PrijsWinnaar (
	prijsID				INTEGER,
	lidnummer			INTEGER,
	FOREIGN KEY(prijsID) REFERENCES Prijs(prijsID),
	FOREIGN KEY(lidnummer) REFERENCES Persoon(lidnummer),
	PRIMARY KEY(prijsID, lidnummer)
);

CREATE TABLE Benodigdheid (
	benID				INTEGER PRIMARY KEY,
	benNaam				VARCHAR(50),
	benBeschr			TEXT,
	isMateriaal			BOOLEAN
);

CREATE TABLE Materiaal (
	benID				INTEGER,
	locatie				TEXT,
	FOREIGN KEY(benID) REFERENCES Benodigdheid(benID)
);

CREATE TABLE Boodschap (
	benID				INTEGER,
	bedragPS			INTEGER,
	FOREIGN KEY(benID) REFERENCES Benodigdheid(benID)
);

CREATE TABLE NodigVoor (
	benID				INTEGER,
	kampID				INTEGER,
	aantal				INTEGER,
	FOREIGN KEY(benID) REFERENCES Benodigdheid(benID),
	FOREIGN KEY(kampID) REFERENCES Kamp(kampID),
	PRIMARY KEY(benID, kampID)
);

CREATE TABLE Post (
	postID				INTEGER PRIMARY KEY,
	kampID				INTEGER,
	postBeschr			TEXT,
	postAantal			INTEGER,
	postBedrag			INTEGER, -- cent
	isUitgave			BOOLEAN,
	benID				INTEGER NULL,
	FOREIGN KEY(benID) REFERENCES Benodigdheid(benID),
	FOREIGN KEY(kampID) REFERENCES Kamp(kampID)
);

CREATE TABLE Document (
	docID				INTEGER PRIMARY KEY,
	kampID				INTEGER,
	docNaam				VARCHAR(50),
	docPad				VARCHAR(256),
	wanneerInzien		DATETIME,
	FOREIGN KEY(kampID) REFERENCES Kamp(kampID)
);

This snippet took 0.01 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).