@@ -3,7 +3,8 @@ CREATE TABLE IF NOT EXISTS reference_tables (
33 code INTEGER UNIQUE NOT NULL ,
44 month INTEGER NOT NULL ,
55 year INTEGER NOT NULL ,
6- crawled_at TIMESTAMP
6+ crawled_at TIMESTAMP ,
7+ brands_crawled_at TIMESTAMP
78);
89
910CREATE TABLE IF NOT EXISTS brands (
@@ -55,3 +56,36 @@ CREATE INDEX IF NOT EXISTS idx_models_segment ON models(segment);
5556CREATE INDEX IF NOT EXISTS idx_reference_year_month ON reference_tables(year, month);
5657CREATE INDEX IF NOT EXISTS idx_model_years_year ON model_years(year);
5758CREATE INDEX IF NOT EXISTS idx_brands_name ON brands(name);
59+
60+ -- Crawl status tracking tables (per reference)
61+ CREATE TABLE IF NOT EXISTS reference_brands (
62+ id SERIAL PRIMARY KEY ,
63+ reference_table_id INTEGER NOT NULL REFERENCES reference_tables(id),
64+ brand_id INTEGER NOT NULL REFERENCES brands(id),
65+ models_crawled_at TIMESTAMP ,
66+ UNIQUE(reference_table_id, brand_id)
67+ );
68+
69+ CREATE TABLE IF NOT EXISTS reference_models (
70+ id SERIAL PRIMARY KEY ,
71+ reference_table_id INTEGER NOT NULL REFERENCES reference_tables(id),
72+ model_id INTEGER NOT NULL REFERENCES models(id),
73+ years_crawled_at TIMESTAMP ,
74+ UNIQUE(reference_table_id, model_id)
75+ );
76+
77+ CREATE TABLE IF NOT EXISTS reference_model_years (
78+ id SERIAL PRIMARY KEY ,
79+ reference_table_id INTEGER NOT NULL REFERENCES reference_tables(id),
80+ model_year_id INTEGER NOT NULL REFERENCES model_years(id),
81+ price_crawled_at TIMESTAMP ,
82+ UNIQUE(reference_table_id, model_year_id)
83+ );
84+
85+ -- Crawl status indexes
86+ CREATE INDEX IF NOT EXISTS idx_reference_brands_ref ON reference_brands(reference_table_id);
87+ CREATE INDEX IF NOT EXISTS idx_reference_brands_brand ON reference_brands(brand_id);
88+ CREATE INDEX IF NOT EXISTS idx_reference_models_ref ON reference_models(reference_table_id);
89+ CREATE INDEX IF NOT EXISTS idx_reference_models_model ON reference_models(model_id);
90+ CREATE INDEX IF NOT EXISTS idx_reference_model_years_ref ON reference_model_years(reference_table_id);
91+ CREATE INDEX IF NOT EXISTS idx_reference_model_years_my ON reference_model_years(model_year_id);
0 commit comments