This commit is contained in:
@@ -3,18 +3,22 @@
|
||||
-- - Passwörter mit Argon2id hashen.
|
||||
-- - Sensible Felder werden app-seitig mit libsodium (XChaCha20-Poly1305) verschlüsselt
|
||||
-- und als base64 in VARBINARY-Spalten abgelegt (nonce + cipher).
|
||||
-- - Konto-E-Mails werden app-seitig verschlüsselt gespeichert; für die technische Suche
|
||||
-- und Dublettenprüfung wird zusätzlich ein HMAC-SHA-256-Lookup-Hash abgelegt.
|
||||
-- - share_level steuert Papa-Infos (basic, papa, papa_contact).
|
||||
-- - children_visibility steuert Kinder-Infos separat (hidden, age_only, details).
|
||||
|
||||
CREATE TABLE users (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
email VARCHAR(255) NOT NULL UNIQUE,
|
||||
email VARBINARY(512) NOT NULL,
|
||||
email_lookup_hash CHAR(64) NOT NULL,
|
||||
password_hash VARCHAR(255) NOT NULL,
|
||||
status ENUM('active','pending','blocked') DEFAULT 'pending',
|
||||
email_verified_at DATETIME NULL,
|
||||
last_login_at DATETIME NULL,
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uq_users_email_lookup_hash (email_lookup_hash)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE user_profiles (
|
||||
|
||||
Reference in New Issue
Block a user