PIVOT 1.1.0

This commit is contained in:
marijn committed 2026-10-14 13:34:37 +02:00
commit 8a53234eb6
161 files changed
+31109

No files matched your search

+448
View File
@@ -0,0 +1,448 @@
-- =====================================================================
-- PIVOT 1.1.0 – database van ÉÉN school (structuur schooljaar 2026-27)
--
-- Elke school in PIVOT heeft een eigen database met deze tabellen.
-- Gebruik: USE <database_van_de_school>; SOURCE school.sql;
-- of: python beheer.py nieuwe-schooldatabase <database>
--
-- Tabellen uit de PDF: Campus, Lokalen, Wifi, Toestellen, Signpost_DB,
-- Opmerkingen, Signpost_herstellingen_DB, Leerlingen, Eigendom,
-- Co_accounts, CO2_Metingen.
-- Aanvullingen die PIVOT nodig heeft staan gemarkeerd met -- [+]
-- (Scholen, Gebruikers, Logs, Bugs en Status staan in de centrale database.)
-- =====================================================================
-- ---------------------------------------------------------------------
-- Schooljaren [+] (Leerlingen.Schooljaar_ID = beginjaar, bv. 2026 → '2026-27')
-- ---------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS Schooljaar (
Schooljaar_ID SMALLINT NOT NULL PRIMARY KEY,
Schooljaar VARCHAR(9) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT IGNORE INTO Schooljaar (Schooljaar_ID, Schooljaar) VALUES
(2022, '2022-23'), (2023, '2023-24'), (2024, '2024-25'), (2025, '2025-26'),
(2026, '2026-27'), (2027, '2027-28'), (2028, '2028-29'), (2029, '2029-30'),
(2030, '2030-31'), (2031, '2031-32'), (2032, '2032-33'), (2033, '2033-34'),
(2034, '2034-35'), (2035, '2035-36');
-- ---------------------------------------------------------------------
-- Campus → Lokalen
-- School_ID verwijst naar Scholen.School_ID in de CENTRALE database.
-- (Geen harde foreign key: een schooldatabase kan op een andere server staan.)
-- ---------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS Campus (
Campus_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
School_ID INT NOT NULL,
Campus_naam VARCHAR(255) NOT NULL,
Adres VARCHAR(255) NULL,
KEY idx_campus_school (School_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS Lokalen (
Lokaal_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Naam VARCHAR(100) NOT NULL,
Campus_ID INT NULL, -- leeg = nog niet aan een campus gekoppeld (bv. nieuw CO2-lokaal)
Verdieping VARCHAR(20) NULL,
KEY idx_lokalen_naam (Naam),
CONSTRAINT fk_lokalen_campus FOREIGN KEY (Campus_ID)
REFERENCES Campus (Campus_ID) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS Wifi (
Wifi_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Campus_ID INT NULL, -- [+] op welke campus dit netwerk hoort
Naam_Netwerk VARCHAR(100) NOT NULL,
Wifi_ww VARCHAR(255) NULL,
CONSTRAINT fk_wifi_campus FOREIGN KEY (Campus_ID)
REFERENCES Campus (Campus_ID) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ---------------------------------------------------------------------
-- Toestellen
-- Schooleigen_ID = het eigen toestelnummer van de school (vroeger KAMXM_nummer).
-- ---------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS Toestellen (
Toestel_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Schooleigen_ID VARCHAR(50) NULL,
Serienummer VARCHAR(100) NULL, -- [+] nodig om het toestel in Google te (de)blokkeren
Type VARCHAR(100) NULL, -- [+] model
Status VARCHAR(20) NOT NULL DEFAULT 'Beschikbaar', -- [+] Beschikbaar / Uitgeleend / Defect
Geblokkeerd TINYINT(1) NOT NULL DEFAULT 0, -- [+] 1 = geblokkeerd in Google Admin
Afschrijfdatum DATE NULL,
Lokaal_ID INT NULL,
UNIQUE KEY uq_toestellen_schooleigen (Schooleigen_ID),
KEY idx_toestellen_serienummer (Serienummer),
KEY idx_toestellen_status (Status),
CONSTRAINT fk_toestellen_lokaal FOREIGN KEY (Lokaal_ID)
REFERENCES Lokalen (Lokaal_ID) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Gegevens van Signpost (1 rij per toestel dat via Signpost aangekocht is)
CREATE TABLE IF NOT EXISTS Signpost_DB (
Toestel_ID INT NOT NULL PRIMARY KEY,
Signpostnummer VARCHAR(50) NULL,
Aankoopbedrag DECIMAL(10,2) NULL,
Aankoopdatum DATE NULL,
Garantie DATE NULL,
UNIQUE KEY uq_signpost_nummer (Signpostnummer),
CONSTRAINT fk_signpost_toestel FOREIGN KEY (Toestel_ID)
REFERENCES Toestellen (Toestel_ID) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS Opmerkingen (
Opmerking_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Toestel_ID INT NOT NULL,
Opmerking TEXT NOT NULL,
Timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
Gebruiker VARCHAR(255) NULL, -- [+] wie de opmerking schreef
KEY idx_opmerkingen_toestel (Toestel_ID, Timestamp),
CONSTRAINT fk_opmerkingen_toestel FOREIGN KEY (Toestel_ID)
REFERENCES Toestellen (Toestel_ID) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ---------------------------------------------------------------------
-- Leerlingen
-- ---------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS Leerlingen (
Leerling_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Internnummer VARCHAR(32) NOT NULL,
Gebruikersnaam VARCHAR(100) NULL,
Naam VARCHAR(100) NULL,
Voornaam VARCHAR(100) NULL,
SS_nummer VARCHAR(255) NULL,
Google_adres VARCHAR(255) NULL,
Schooljaar_ID SMALLINT NULL, -- [+] zie tabel Schooljaar
Vertrokken_op DATE NULL, -- niet meer actief in Informat sinds (NULL = actief)
UNIQUE KEY uq_leerlingen_internnummer (Internnummer),
KEY idx_leerlingen_gebruikersnaam (Gebruikersnaam)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS Co_accounts (
Co_account_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Internnummer VARCHAR(32) NOT NULL,
Naam VARCHAR(100) NULL,
Voornaam VARCHAR(100) NULL,
Laatste_aanmelding DATETIME NULL,
Emailadres_co_accounts VARCHAR(255) NULL,
KEY idx_coaccounts_intern (Internnummer),
CONSTRAINT fk_coaccounts_leerling FOREIGN KEY (Internnummer)
REFERENCES Leerlingen (Internnummer) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ---------------------------------------------------------------------
-- Eigendom: welk toestel heeft welke leerling (ook de geschiedenis).
-- Datum_inlevering leeg = de leerling heeft het toestel nu.
-- (Vervangt de vroegere tabel Eigendom_archief.)
-- ---------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS Eigendom (
Eigendom_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Internnummer VARCHAR(32) NOT NULL,
Toestel_ID INT NOT NULL,
Status TINYINT NOT NULL DEFAULT 0, -- 0 = actief, 1 = geblokkeerd in Google
Datum_toekenning DATE NOT NULL,
Datum_inlevering DATE NULL,
KEY idx_eigendom_leerling (Internnummer, Datum_inlevering),
KEY idx_eigendom_toestel (Toestel_ID, Datum_inlevering),
CONSTRAINT fk_eigendom_leerling FOREIGN KEY (Internnummer)
REFERENCES Leerlingen (Internnummer) ON UPDATE CASCADE,
CONSTRAINT fk_eigendom_toestel FOREIGN KEY (Toestel_ID)
REFERENCES Toestellen (Toestel_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ---------------------------------------------------------------------
-- Herstellingen (via Signpost of intern)
-- ---------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS Signpost_herstellingen_DB (
Incident_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Toestel_ID INT NOT NULL,
Omschrijving TEXT NULL,
Kostprijs DECIMAL(10,2) NULL,
Status_herstelling VARCHAR(30) NOT NULL DEFAULT 'geregistreerd',
Datum DATE NULL, -- [+] datum van de melding
Leerling_ID INT NULL, -- [+] leerling die het toestel binnenbracht
KEY idx_herstellingen_toestel (Toestel_ID),
CONSTRAINT fk_herstellingen_toestel FOREIGN KEY (Toestel_ID)
REFERENCES Toestellen (Toestel_ID) ON DELETE CASCADE,
CONSTRAINT fk_herstellingen_leerling FOREIGN KEY (Leerling_ID)
REFERENCES Leerlingen (Leerling_ID) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ---------------------------------------------------------------------
-- CO2-metingen per lokaal
-- ---------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS CO2_Metingen (
Meting_ID BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Lokaal_ID INT NOT NULL,
ppm INT NOT NULL,
Timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
KEY idx_co2_lokaal_tijd (Lokaal_ID, Timestamp),
KEY idx_co2_tijd (Timestamp),
CONSTRAINT fk_co2_lokaal FOREIGN KEY (Lokaal_ID)
REFERENCES Lokalen (Lokaal_ID) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- =====================================================================
-- [+] Tabellen van PIVOT-modules die niet in de PDF staan
-- (PIVOT maakt ze ook zelf aan bij het eerste gebruik)
-- =====================================================================
CREATE TABLE IF NOT EXISTS smartschool_afwezigheden (
Datum DATE NOT NULL,
Internnummer VARCHAR(32) NOT NULL,
Dagdeel CHAR(2) NOT NULL,
Code VARCHAR(8) NOT NULL,
PRIMARY KEY (Datum, Internnummer, Dagdeel),
INDEX idx_intern (Internnummer),
INDEX idx_code (Code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS smartschool_afwezigheden_sync (
Datum DATE NOT NULL PRIMARY KEY,
Opgehaald DATETIME NOT NULL,
Aantal INT NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS tweestaps_uitzonderingen (
ID INT AUTO_INCREMENT PRIMARY KEY,
Email VARCHAR(255) NOT NULL,
Naam VARCHAR(255) NULL,
Reden VARCHAR(255) NULL,
Van DATETIME NOT NULL,
Tot DATETIME NOT NULL,
Door VARCHAR(100) NULL,
Actief TINYINT NOT NULL DEFAULT 1,
Beeindigd_op DATETIME NULL,
Beeindigd_door VARCHAR(100) NULL,
INDEX idx_actief (Actief, Tot),
INDEX idx_email (Email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS tweestaps_log (
ID INT AUTO_INCREMENT PRIMARY KEY,
Tijdstip DATETIME NOT NULL,
Door VARCHAR(100) NULL,
Actie VARCHAR(40) NOT NULL,
Email VARCHAR(255) NOT NULL,
Details VARCHAR(255) NULL,
INDEX idx_tijdstip (Tijdstip)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS gmail_delegatie_log (
ID INT AUTO_INCREMENT PRIMARY KEY,
Tijdstip DATETIME NOT NULL,
Gebruiker VARCHAR(100) NULL,
Actie VARCHAR(20) NOT NULL,
Mailbox VARCHAR(255) NOT NULL,
Gedelegeerde VARCHAR(255) NOT NULL,
INDEX idx_mailbox (Mailbox),
INDEX idx_tijdstip (Tijdstip)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS gmail_delegaties (
Mailbox VARCHAR(255) NOT NULL,
Mailbox_naam VARCHAR(255) NULL,
Gedelegeerde VARCHAR(255) NOT NULL,
Gedelegeerde_naam VARCHAR(255) NULL,
Status VARCHAR(20) NULL,
Opgehaald DATETIME NOT NULL,
PRIMARY KEY (Mailbox, Gedelegeerde),
KEY idx_gmail_deleg_gedelegeerde (Gedelegeerde)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS gmail_delegaties_scan (
ID TINYINT NOT NULL PRIMARY KEY,
Opgehaald DATETIME NULL,
Mailboxen INT NULL,
Fouten INT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS internaat_aanwezigheid (
Datum DATE NOT NULL,
Persoon_ID VARCHAR(64) NOT NULL, -- pPersoon/persoonId uit de Internaat-API van Informat
Moment VARCHAR(10) NOT NULL, -- ochtend | avond
Status VARCHAR(10) NOT NULL, -- aanwezig | afwezig (geen rij = nog niet gecontroleerd)
Naam VARCHAR(200) NULL,
Bijgewerkt DATETIME NOT NULL,
Door VARCHAR(255) NULL,
PRIMARY KEY (Datum, Persoon_ID, Moment),
KEY idx_aanw_persoon (Persoon_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS gmail_label_log (
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Gestart DATETIME NOT NULL,
Klaar DATETIME NULL,
Door VARCHAR(255) NULL,
Bron VARCHAR(255) NOT NULL,
Label VARCHAR(255) NOT NULL,
Doel VARCHAR(255) NOT NULL,
Modus VARCHAR(12) NOT NULL, -- kopieren | verplaatsen
Totaal INT NULL,
Gelukt INT NULL,
Overgeslagen INT NULL,
Fouten INT NULL,
Melding VARCHAR(500) NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS gmail_label_items (
Bron VARCHAR(255) NOT NULL,
Bron_ID VARCHAR(64) NOT NULL, -- Gmail-id in de bronmailbox
Doel VARCHAR(255) NOT NULL,
Doel_ID VARCHAR(64) NULL, -- Gmail-id van de kopie in de doelmailbox
Gekopieerd DATETIME NOT NULL,
PRIMARY KEY (Bron, Bron_ID, Doel)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Gmail-handtekeningen: sjabloon, logo en gekozen OU's (één rij) en wanneer de handtekening per gebruiker gezet werd
CREATE TABLE IF NOT EXISTS gmail_handtekening (
ID TINYINT NOT NULL PRIMARY KEY,
Sjabloon MEDIUMTEXT NULL,
OUs TEXT NULL,
Met_sub_ous TINYINT NOT NULL DEFAULT 1,
Logo MEDIUMBLOB NULL,
Logo_type VARCHAR(40) NULL,
Logo_sleutel VARCHAR(40) NULL,
Logo_url VARCHAR(500) NULL,
Logo_breedte INT NOT NULL DEFAULT 120,
Publiek_adres VARCHAR(255) NULL,
Nachtelijk TINYINT NOT NULL DEFAULT 0,
Laatste_nacht DATE NULL,
Nacht_resultaat VARCHAR(500) NULL,
Bijgewerkt DATETIME NULL,
Door VARCHAR(255) NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS gmail_handtekening_log (
Email VARCHAR(255) NOT NULL PRIMARY KEY,
Toegepast DATETIME NOT NULL,
Ok TINYINT NOT NULL,
Melding VARCHAR(500) NULL,
Hash CHAR(40) NULL,
Door VARCHAR(255) NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Gmail › Contacten: contactlijsten die PIVOT in de mailboxen van de gekozen OU's zet
CREATE TABLE IF NOT EXISTS contact_lijsten (
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Naam VARCHAR(100) NOT NULL, -- label in Google Contacten
OUs TEXT NULL, -- JSON-lijst van OU-paden
Met_sub_ous TINYINT NOT NULL DEFAULT 1,
Bijgewerkt DATETIME NULL,
Door VARCHAR(255) NULL,
Laatste_sync DATETIME NULL,
Resultaat VARCHAR(500) NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS contact_lijst_items (
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Lijst_ID INT NOT NULL,
Voornaam VARCHAR(100) NULL,
Achternaam VARCHAR(100) NULL,
Organisatie VARCHAR(150) NULL,
Functie VARCHAR(150) NULL,
Email VARCHAR(255) NULL,
Telefoon VARCHAR(60) NULL,
Notitie VARCHAR(500) NULL,
KEY idx_cli_lijst (Lijst_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS google_licenties (
SKU_ID VARCHAR(32) NOT NULL PRIMARY KEY,
Naam VARCHAR(128) NOT NULL,
Aangekocht INT NOT NULL DEFAULT 0,
Bijgewerkt DATETIME NULL,
Bijgewerkt_door VARCHAR(100) NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS personeel_aanvragen (
ID INT AUTO_INCREMENT PRIMARY KEY,
Soort VARCHAR(20) NOT NULL,
Status VARCHAR(20) NOT NULL,
Email VARCHAR(255) NOT NULL,
Naam VARCHAR(255) NULL,
Ingediend_door VARCHAR(255) NULL,
Titel VARCHAR(255) NOT NULL,
Omschrijving TEXT NULL,
Locatie VARCHAR(255) NULL,
Van_datum DATE NOT NULL,
Tot_datum DATE NOT NULL,
Dagdeel VARCHAR(10) NOT NULL DEFAULT 'dag',
Lesuren VARCHAR(50) NULL,
Klassen TEXT NULL,
Begeleiders TEXT NULL,
Kost DECIMAL(10,2) NULL,
Vervanging_ok TINYINT NOT NULL DEFAULT 0,
Vervanging_info VARCHAR(255) NULL,
Aangemaakt DATETIME NOT NULL,
Bijgewerkt DATETIME NOT NULL,
INDEX idx_status (Status),
INDEX idx_datum (Van_datum, Tot_datum),
INDEX idx_email (Email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS personeel_reacties (
ID INT AUTO_INCREMENT PRIMARY KEY,
Aanvraag_ID INT NOT NULL,
Tijdstip DATETIME NOT NULL,
Email VARCHAR(255) NULL,
Naam VARCHAR(255) NULL,
Actie VARCHAR(30) NOT NULL,
Tekst TEXT NULL,
INDEX idx_aanvraag (Aanvraag_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Skore-synchronisatie (planning + logboek)
CREATE TABLE IF NOT EXISTS skore_planning (
ID TINYINT NOT NULL PRIMARY KEY,
Frequentie VARCHAR(20) NOT NULL DEFAULT 'uit',
Uur TINYINT NOT NULL DEFAULT 6,
Minuut TINYINT NOT NULL DEFAULT 0,
Weekdag TINYINT NOT NULL DEFAULT 0,
Dag_van_maand TINYINT NOT NULL DEFAULT 1,
Laatst_gepland DATETIME NULL,
Bijgewerkt DATETIME NULL,
Bijgewerkt_door VARCHAR(255) NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS skore_log (
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Gestart DATETIME NOT NULL,
Door VARCHAR(255) NULL,
Manier VARCHAR(20) NOT NULL,
Service_ID VARCHAR(100) NULL,
Status VARCHAR(30) NOT NULL,
Melding TEXT NULL,
Bijgewerkt DATETIME NULL,
INDEX idx_skore_gestart (Gestart)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT IGNORE INTO skore_planning (ID) VALUES (1);
CREATE TABLE IF NOT EXISTS smartschool_coaccounts (
Internnummer VARCHAR(32) NOT NULL,
Nr TINYINT NOT NULL,
Gebruikersnaam VARCHAR(100) NULL,
Leerling_naam VARCHAR(100) NULL,
Leerling_voornaam VARCHAR(100) NULL,
Klas VARCHAR(50) NULL,
Voornaam VARCHAR(100) NULL,
Naam VARCHAR(100) NULL,
Type VARCHAR(50) NULL,
Email VARCHAR(255) NULL,
Laatste_login DATETIME NULL,
Opgehaald DATETIME NOT NULL,
PRIMARY KEY (Internnummer, Nr),
KEY idx_coacc_klas (Klas)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS gopro_keuzes (
Person_ID VARCHAR(64) NOT NULL PRIMARY KEY,
Functie VARCHAR(100) NULL,
Rol VARCHAR(100) NULL,
Bijgewerkt DATETIME NOT NULL,
Door VARCHAR(255) NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;