-- Author: fruit.com.cn -- K111 设备平台:记录每个 device_id 是 iOS 还是 Android。 -- 会话/设备表都依赖已登录账号,游客行为拿不到平台;这里按 device_id 独立建档, -- 只存平台,系统版本与机型不上报。 BEGIN; DROP TABLE IF EXISTS app_device_profile; CREATE TABLE app_device_profile ( id BIGINT NOT NULL, device_id VARCHAR(128) NOT NULL, platform VARCHAR(16) 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 uk_app_device_profile_device ON app_device_profile (device_id); COMMENT ON TABLE app_device_profile IS '设备平台:device_id 维度区分 iOS/Android,匿名请求同样记录'; COMMIT;