diff --git a/db2/scripts/create_sqlite3.sql b/db2/scripts/create_sqlite3.sql index 6193a0b..020a442 100644 --- a/db2/scripts/create_sqlite3.sql +++ b/db2/scripts/create_sqlite3.sql @@ -7,7 +7,8 @@ CREATE TABLE IF NOT EXISTS Users ( password_hash TEXT NOT NULL, create_at DATETIME DEFAULT CURRENT_TIMESTAMP, last_login DATETIME, - is_active BOOLEAN DEFAULT 1 + is_active BOOLEAN DEFAULT 1, + is_admin BOOLEAN NOT NULL DEFAULT 0 ); CREATE TABLE IF NOT EXISTS Notes ( @@ -18,14 +19,19 @@ CREATE TABLE IF NOT EXISTS Notes ( content TEXT NOT NULL, views INTEGER NOT NULL DEFAULT 0, created_at DATETIME, - updated_at DATETIME + updated_at DATETIME, + is_public BOOLEAN NOT NULL DEFAULT 1, + everyone_editable BOOLEAN NOT NULL DEFAULT 1 ); --- 旧版增量 +-- 旧版增量(存量库请按编号顺序执行对应 patch 脚本) -- ALTER TABLE Notes ADD COLUMN owner VARCHAR(128) DEFAULT 'Unknow'; --- ALTER TABLE Notes ADD COLUMN views INTEGER NOT NULL DEFAULT 0; -- patch_001 观看人数列 --- ALTER TABLE Notes ADD COLUMN created_at DATETIME; -- patch_002 创建时间 --- ALTER TABLE Notes ADD COLUMN updated_at DATETIME; -- patch_002 更新时间 +-- ALTER TABLE Notes ADD COLUMN views INTEGER NOT NULL DEFAULT 0; -- patch_001 观看人数列 +-- ALTER TABLE Notes ADD COLUMN created_at DATETIME; -- patch_002 创建时间 +-- ALTER TABLE Notes ADD COLUMN updated_at DATETIME; -- patch_002 更新时间 +-- ALTER TABLE Users ADD COLUMN is_admin BOOLEAN NOT NULL DEFAULT 0; -- patch_003 管理员标记 +-- ALTER TABLE Notes ADD COLUMN is_public BOOLEAN NOT NULL DEFAULT 1; -- patch_003 是否公开(默认公开) +-- ALTER TABLE Notes ADD COLUMN everyone_editable BOOLEAN NOT NULL DEFAULT 1; -- patch_003 是否人人可编辑(默认人人可编辑) -- Notes 索引:get_notes 按 pid 查子节点、所有权校验按 owner(patch_001 并入) CREATE INDEX IF NOT EXISTS idx_notes_pid ON Notes(pid); diff --git a/db2/scripts/patch_003_users_admin_notes_visibility.sql b/db2/scripts/patch_003_users_admin_notes_visibility.sql new file mode 100644 index 0000000..954c7c5 --- /dev/null +++ b/db2/scripts/patch_003_users_admin_notes_visibility.sql @@ -0,0 +1,17 @@ +-- 补丁 003:Users 管理员标记 + Notes 可见性/可编辑性 +-- 数据库类型: SQLite +-- 依赖: create_sqlite3.sql(或等价 schema)已执行,且 patch_001 / patch_002 已按序执行 +-- 幂等性: ADD COLUMN 为一次性迁移,重复执行会报 "duplicate column name", +-- 请按迁移编号顺序执行一次。 +-- +-- 语义(默认值向后兼容现有行为): +-- Users.is_admin 是否管理员,默认 0(普通用户) +-- Notes.is_public 节点是否公开可读,默认 1(公开,与现状一致) +-- Notes.everyone_editable 是否任何人都能编辑,默认 1(人人可编辑) + +-- ── Users 新增管理员标记 ───────────────────────────────────────────── +ALTER TABLE Users ADD COLUMN is_admin BOOLEAN NOT NULL DEFAULT 0; + +-- ── Notes 新增可见性 / 可编辑性 ────────────────────────────────────── +ALTER TABLE Notes ADD COLUMN is_public BOOLEAN NOT NULL DEFAULT 1; +ALTER TABLE Notes ADD COLUMN everyone_editable BOOLEAN NOT NULL DEFAULT 1;