-- Identitäten CREATE TABLE identities ( id INT AUTO_INCREMENT PRIMARY KEY, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB; -- Stammdaten (Key-Value) CREATE TABLE identity_fields ( id INT AUTO_INCREMENT PRIMARY KEY, identity_id INT NOT NULL, field_key VARCHAR(50) NOT NULL, field_value TEXT NOT NULL, FOREIGN KEY (identity_id) REFERENCES identities(id) ON DELETE CASCADE ) ENGINE=InnoDB; -- Zugriffstoken (UUIDs) CREATE TABLE access_tokens ( id INT AUTO_INCREMENT PRIMARY KEY, identity_id INT NOT NULL, uuid CHAR(36) NOT NULL UNIQUE, expires_at DATETIME NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (identity_id) REFERENCES identities(id) ON DELETE CASCADE ) ENGINE=InnoDB; -- Feldrechte pro Token CREATE TABLE token_permissions ( token_id INT NOT NULL, field_key VARCHAR(50) NOT NULL, PRIMARY KEY (token_id, field_key), FOREIGN KEY (token_id) REFERENCES access_tokens(id) ON DELETE CASCADE ) ENGINE=InnoDB; -- Dateien (Bilder, PDFs, etc.) CREATE TABLE files ( id INT AUTO_INCREMENT PRIMARY KEY, identity_id INT NOT NULL, token_id INT NULL, filename VARCHAR(255) NOT NULL, stored_name VARCHAR(255) NOT NULL, mime_type VARCHAR(100), uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (identity_id) REFERENCES identities(id) ON DELETE CASCADE, FOREIGN KEY (token_id) REFERENCES access_tokens(id) ON DELETE SET NULL ) ENGINE=InnoDB;