Files
suivi_produit/docs/db_structure.md
2026-01-18 12:23:01 +01:00

2.4 KiB

Structure base de données

Vue d'ensemble

  • products : produit suivi (URL canonique, store, catégories, statut).
  • scrape_runs : trace des runs pour mesurer taux réussite / blocages.
  • product_snapshots : historique des données extraites (prix, stock, badges, raw JSON).

Diagramme

┌─────────────┐       ┌──────────────┐
│  products   │ 1   N │ product_     │
│ (stores)    │──────>│ snapshots    │
│ id PK       │       │ id PK        │
│ store       │       │ product_id FK│
│ url         │       │ scraped_at   │
│ asin        │       │ price_current│
│ ...         │       │ stock_text   │
└─────────────┘       │ ...          │
                      └──────────────┘

┌──────────────┐
│ scrape_runs  │
│ id PK        │
│ started_at   │
│ ended_at     │
│ status       │
│ items_ok     │
│ items_failed │
│ items_total  │
└──────────────┘

Commentaire : products lie les snapshots ; scrape_runs peut être lié aux snapshots si on enregistre scrape_run_id. Commentaire : les indexes product_id, scraped_at et asin servent à accélérer les historiques et recherches.

Schéma base de données (SQLite)

Proposer un schéma minimal + extensible.

Tables

  1. products
  • id (PK)
  • store (ex: amazon_fr)
  • url
  • asin
  • title
  • image_url
  • category
  • type
  • is_active (bool)
  • created_at, updated_at
  1. scrape_runs
  • id (PK)
  • started_at, ended_at
  • status (success/partial/failed)
  • items_total, items_ok, items_failed
  • log_path (option)
  1. product_snapshots
  • id (PK)
  • product_id (FK → products.id)
  • scraped_at
  • price_current
  • price_list (nullable)
  • lowest_30d_price (nullable)
  • stock_text (nullable)
  • in_stock (nullable)
  • rating_value (nullable)
  • rating_count (nullable)
  • prime_eligible (nullable)
  • amazon_choice (nullable)
  • limited_time_deal (nullable)
  • amazon_exclusive (nullable)
  • raw_json_path (nullable)
  • scrape_status (ok/blocked/missing_fields/error)
  • error_message (nullable)
  1. (option) tags
  • id, name
  1. (option) product_tags
  • product_id, tag_id