Eerste commit
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
-- MijnBesluit - toestellen voor push-meldingen
|
||||
--
|
||||
-- Elke app meldt zich met een kenmerk van Firebase (Android) of APNs (iOS). Daarmee kan de
|
||||
-- SocketServer een melding sturen als er een bericht wordt bezorgd, ook als de app dicht is.
|
||||
--
|
||||
-- Draaien met:
|
||||
-- mysql -u root -p mijnbesluit < db\05_meldingen.sql
|
||||
--
|
||||
-- Opnieuw draaien mag: er gebeurt dan niets.
|
||||
|
||||
USE `mijnbesluit`;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `toestellen` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
||||
`user_id` BIGINT NOT NULL,
|
||||
-- Het kenmerk van Google is lang; 512 is ruim genoeg en past nog in een unieke index.
|
||||
`kenmerk` VARCHAR(512) NOT NULL,
|
||||
`platform` VARCHAR(20) NOT NULL DEFAULT 'android',
|
||||
`naam` VARCHAR(120) NULL,
|
||||
`aangemeld_op` DATETIME(3) NOT NULL,
|
||||
`laatst_gezien` DATETIME(3) NOT NULL,
|
||||
`afgemeld_op` DATETIME(3) NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
-- Eén kenmerk hoort bij één toestel. Wisselt de gebruiker, dan verhuist de regel mee.
|
||||
UNIQUE KEY `ux_toestellen_kenmerk` (`kenmerk`),
|
||||
KEY `ix_toestellen_user` (`user_id`),
|
||||
CONSTRAINT `fk_toestel_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
-- De rechten voor de applicatiegebruiker staan NIET hier maar in 02_applicatiegebruiker.sql.
|
||||
--
|
||||
-- Waarom: de scripts vanaf 03 worden ook door de uitrolagent gedraaid, met een beperkt
|
||||
-- databaseaccount dat geen rechten mág uitdelen. Een GRANT hier laat die hele uitrol struikelen,
|
||||
-- en dat account meer macht geven is de verkeerde kant op. Rechten uitdelen is inrichten; dat
|
||||
-- doet een mens één keer als root. Een zelfcontrole legt elke CREATE TABLE in deze map naast de
|
||||
-- lijst in 02, dus vergeten kan niet ongemerkt.
|
||||
|
||||
SELECT 'Klaar: tabel toestellen aangemaakt.' AS melding;
|
||||
Reference in New Issue
Block a user