-- Author: fruit.com.cn -- K111 设备画像:记录每个 device_id 的客户端系统与机型。 -- 之前的系统信息只存在于 app_user_session / app_user_device,两者都依赖已登录账号, -- 游客行为完全拿不到系统;改成按 device_id 独立建档,匿名请求也能落库。 BEGIN; CREATE TABLE IF NOT EXISTS app_device_profile ( id BIGINT NOT NULL, device_id VARCHAR(128) NOT NULL, platform VARCHAR(16) NOT NULL DEFAULT '', os_version VARCHAR(64) NOT NULL DEFAULT '', device_model VARCHAR(128) NOT NULL DEFAULT '', app_version VARCHAR(32) NOT NULL DEFAULT '', first_seen_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, last_seen_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, deleted SMALLINT NOT NULL DEFAULT 0, PRIMARY KEY (id) ); -- 不带 deleted 谓词:写入用的 ON CONFLICT (device_id) 需要能推断到唯一索引; -- 设备画像不做软删,重复建档走更新。 CREATE UNIQUE INDEX IF NOT EXISTS uk_app_device_profile_device ON app_device_profile (device_id); COMMENT ON TABLE app_device_profile IS '设备画像:device_id 维度的客户端系统与机型,匿名请求同样记录'; COMMIT;