Demo entry 4022522

honk.sql

   

Submitted by anonymous on Mar 13, 2016 at 15:50
Language: SQL. Code size: 3.9 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		VARCHAR(256),
	isLid			BOOLEAN
);

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

CREATE TABLE Leiding (
	heeftRijbewijs	BOOLEAN,
	heeftEHBO		BOOLEAN,
	lidnummer		INTEGER,
	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)
);

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).