diff --git a/docs/device-session-management-design.html b/docs/device-session-management-design.html index 98712f5..e0bba44 100644 --- a/docs/device-session-management-design.html +++ b/docs/device-session-management-design.html @@ -146,7 +146,8 @@ INDEX (user_id), INDEX (device_id), UNIQUE (refresh_jti)
devices( id INTEGER PK AUTOINCREMENT, -- 000001 内部自增主键 - uuid TEXT NOT NULL UNIQUE, -- 000001 客户端生成的稳定设备 UUID(API 对外用它) + uuid TEXT NOT NULL, -- 000001 客户端生成的稳定设备 UUID(API 对外用它)。 + -- *000016 唯一键改 UNIQUE(user_id,uuid),见 §3.2.1 ⑤ user_id NOT NULL, -- 000001 FK users.id(设备归属用户) name TEXT NOT NULL, -- 000001 设备名(主机名/机型,≤64 runes) platform TEXT NOT NULL CHECK(...), -- 000001 ios|android|windows|macos|linux * @@ -158,12 +159,13 @@ devices( ) INDEX (user_id) -- 000001 UNIQUE INDEX (dp_uuid) -- 000015(NULL 不冲突,存量待回填) +UNIQUE (user_id, uuid) -- 000016 *改:原 000001 是全局 UNIQUE(uuid),换用户需放开为复合键
| 列 | 类型 | 来源 | 用途 |
|---|---|---|---|
id | INTEGER PK | 000001 | 内部自增主键(sessions/usage_device_daily 用 device_id 引用它) |
uuid | TEXT UNIQUE | 000001 | 客户端生成的稳定设备 UUID;/v1/me/devices/{uuid} 路径参数即它 |
uuid | TEXT,UNIQUE(user_id,uuid) | 000001 ·唯一键 000016 | 客户端生成的稳定设备 UUID;/v1/me/devices/{uuid} 路径参数即它。安装级、与账户无关,换用户不变(§3.2.1 ⑤) |
user_id | FK users.id | 000001 | 设备归属用户 |
name | TEXT | 000001 | 设备名(主机名/机型,normalizeName 截断 ≤64 runes) |
platform | TEXT CHECK | 000001 | 平台枚举。*现有 CHECK 仅 4 值,需 000016 放宽加 linux |