-- 观测数据下载缓存表(取代 spectrum_cache,支持多产品类型 + 多文件产物) -- -- 与 spectrum_cache 的关键差异: -- 1. 新增 product 列:区分 spectrum / lightcurve / photometry / image -- 2. UNIQUE 加入 product:同一源的同一标识符可同时缓存光谱与光变 -- 3. file_path/file_format 改为 artifacts_json:一个逻辑产物可对应多个物理文件 -- (如 Gaia EPOCH_PHOTOMETRY 的 G/BP/RP 三波段各一个 FITS) -- 4. 观测数据不可变,无 expires_at(与 vizier_query_cache 的 TTL 缓存不同) -- -- 兼容:spectrum_cache 旧数据由 20260705140001_migrate_spectrum_to_observation.sql 迁移 CREATE TABLE IF NOT EXISTS observation_cache ( id INTEGER PRIMARY KEY AUTOINCREMENT, source TEXT NOT NULL, -- 'lamost' | 'gaia' | 'sdss' | 'desi' | ... product TEXT NOT NULL, -- 'spectrum' | 'lightcurve' | 'photometry' | 'image' source_id TEXT NOT NULL, -- obsid / source_id / plate-mjd-fiber / targetid... ra REAL, dec REAL, artifacts_json TEXT NOT NULL, -- [{"path","format","size"}] 多文件产物 meta_json TEXT, -- z/class/band 等元信息 created_at DATETIME DEFAULT CURRENT_TIMESTAMP, UNIQUE(source, product, source_id) ); CREATE INDEX IF NOT EXISTS idx_obs_cache_source ON observation_cache(source, product, source_id);