Documentation · Annexes
Référence de la base de données et du stockage
Cette annexe répertorie les tables de base de données personnalisées, les types de publication, les taxonomies et les emplacements de stockage utilisés par l'extension ADP Car Market Hub.
Quand utiliser ce document
Utilisez cette référence lors de la planification des sauvegardes, de la création de rapports, du diagnostic des problèmes de schéma ou de l'audit des données conservées par l'extension. Pour le modèle d'entité conceptuel et les détails du schéma, consultez Schéma de la base de données, Modèle de données et Types de publication personnalisés et taxonomies.
Aperçu
L'extension stocke les données à cinq endroits :
- Tables de base de données personnalisées pour les véhicules, les événements d'analyse, les abonnements aux alertes de recherche et les tâches/ressources du Content Studio.
- Types de publication personnalisés pour les véhicules, les leads et les emplacements, stockés dans
wp_postsetwp_postmeta. - Taxonomies personnalisées stockées dans
wp_terms,wp_term_taxonomyetwp_term_relationships. - Options WordPress dans
wp_options(toutes préfixées paras24ci_). Voir la Référence des réglages. - Transients pour les caches à courte durée de vie et les verrous.
Tables de base de données personnalisées
Toutes les tables utilisent le préfixe WordPress (généralement wp_). Les cinq tables personnalisées sont supprimées lors de la désinstallation, quel que soit le réglage de as24ci_delete_data_on_uninstall, car elles peuvent contenir des données de visiteurs ou des données personnelles.
| Suffixe de table | Propriétaire | Option de version du schéma | Objectif |
|---|---|---|---|
as24_vehicles | AS24CI\Vehicle_Repository | as24ci_vehicles_db_version | Une ligne par véhicule importé, indexée pour les requêtes d'archive. |
as24ci_analytics | AS24CI\Analytics | as24ci_analytics_db_version | Événements d'analyse (vues, recherches par filtre, ouvertures de contact, soumissions de leads). |
as24ci_search_agents | AS24CI\Search_Agent | as24ci_search_agent_db_version | Abonnements aux alertes de recherche des visiteurs (Smart Stock Alerts). |
as24ci_content_studio_jobs | AS24CI\Content_Studio_Repository | as24ci_content_studio_db_version | Une ligne par tâche de génération du Content Studio. |
as24ci_content_studio_assets | AS24CI\Content_Studio_Repository | as24ci_content_studio_db_version | Ressources générées par le Content Studio, liées à une tâche par job_id. |
as24_vehicles (répertoire des véhicules)
Contient une ligne par véhicule, liée à sa publication as24ci_car par post_id. La colonne as24_id contient l'identifiant d'annonce AutoScout24. Les deux colonnes ont des index uniques. Les colonnes notables incluent make, model, version_full_name, condition_type, body_type, fuel_type, transmission_type, drive_type, color_exterior, color_interior, mileage, cubic_capacity, range_km, first_registration, power_kw, power_hp, co2_emission, price, list_price, currency, emission_standard, energy_label, battery_capacity, vin, status, is_live, had_accident, equipment_codes, equipment_standard, equipment_optional, images, raw_data, manual_overrides, content_hash, imported_at, updated_at.
Les index incluent des clés uniques sur as24_id et post_id, ainsi que des index secondaires sur make/model, price, mileage, first_reg_year, fuel_type/condition_type, status/is_live et content_hash. Voir Schéma de la base de données pour la liste complète des colonnes et des types.
as24ci_analytics (événements d'analyse)
Stocke une ligne par événement suivi. Colonnes : id, post_id (0 pour les événements globaux), event_type, extra_data (JSON facultatif), created_at. Les index couvrent (post_id, event_type, created_at), (event_type, created_at) et created_at. Les insertions ne se produisent que lorsque l'analyse est activée. Une tâche de rétention quotidienne s'exécute via le hook de cron as24ci_daily_cleanup et supprime les lignes plus anciennes que la fenêtre de rétention configurée.
as24ci_search_agents (Smart Stock Alerts)
Stocke les abonnements des visiteurs. Colonnes : id, name, email, criteria, token, frequency, status (pending, active, inactive, paused), created_at, confirmed_at. Les index couvrent status et token. Étant donné que la table contient des données personnelles, elle est supprimée lors de la désinstallation, quel que soit le réglage de nettoyage.
as24ci_content_studio_jobs (tâches du Content Studio)
Stocke une ligne par tâche de génération du Content Studio. Les colonnes incluent id, vehicle_post_id, vehicle_snapshot_hash, content_type, platform_preset, output_format, preset_key, status (draft, queued, processing, ready, failed), prompt_payload, provider, model, language, tone, attempts, last_error, created_by, created_at, updated_at, started_at, completed_at. Les index couvrent vehicle_post_id, (status, created_at), platform_preset et content_type.
as24ci_content_studio_assets (ressources du Content Studio)
Stocke les ressources générées liées à une tâche par job_id. Les colonnes incluent id, job_id, vehicle_post_id, asset_type, file_path, file_url, mime_type, file_size, width, height, duration_seconds, caption, hashtags, alt_text, thumbnail_path, payload_json, scheduled_at, schedule_status (unscheduled, scheduled), created_at. Les index couvrent job_id, vehicle_post_id, asset_type, created_at, schedule_status et scheduled_at.
Types de publication personnalisés
| Type de publication | Public | A une archive | Stocké dans | Objectif |
|---|---|---|---|---|
as24ci_car | Oui | Oui | wp_posts, wp_postmeta (ancre) + table personnalisée {prefix}as24_vehicles (données de champ) | Véhicules importés. Lié de manière biunivoque à une ligne dans as24_vehicles par post_id. |
as24ci_lead | Non | Non | wp_posts, wp_postmeta | Soumissions de formulaires de contact et de demandes d'essai routier. |
Les emplacements des concessionnaires ne sont pas un type de publication personnalisé. Ils sont stockés sous forme d'un tableau unique dans l'option WordPress as24ci_locations et affichés via les shortcodes d'emplacement/heures d'ouverture.
Les taxonomies as24ci_car et les champs de véhicule les plus utilisés sont dupliqués dans les métadonnées de publication avec le préfixe _as24ci_ pour la compatibilité avec le thème (par exemple _as24ci_listing_id, _as24ci_make, _as24ci_model, _as24ci_price, _as24ci_mileage, _as24ci_image_ids, _as24ci_manual_image_ids).
Les publications as24ci_lead portent des clés méta telles que _as24ci_lead_name, _as24ci_lead_email, _as24ci_lead_phone, _as24ci_lead_message, _as24ci_lead_vehicle_id, _as24ci_lead_vehicle_title, _as24ci_lead_date, _as24ci_lead_is_test_drive, _as24ci_lead_appointment_date, _as24ci_lead_status.
Taxonomies des véhicules
L'extension enregistre 15 taxonomies d'attributs de véhicules, toutes rattachées à as24ci_car :
- Marque
- Modèle
- Forme de carrosserie
- État
- Type de carburant
- Boîte de vitesses
- Transmission
- Couleur extérieure
- Couleur intérieure
- Norme d'émission
- Label énergétique
- Catégorie de véhicule
- Configuration des cylindres
- Type de garantie
- Détails de la garantie
Vérifiez les slugs exacts dans AS24CI\Taxonomies (voir Types de publication personnalisés et taxonomies) avant de publier du code prenant en compte les taxonomies.
Tables de base WordPress utilisées
L'extension ne modifie pas le schéma des tables de base WordPress. Elle les utilise comme suit :
wp_posts— stocke les types de publicationas24ci_caretas24ci_lead. (Les emplacements ne sont pas un type de publication ; ils résident dans l'optionas24ci_locations.)wp_postmeta— stocke les métadonnées de publication pour la compatibilité descendante et le statut des leads.wp_terms,wp_term_taxonomy,wp_term_relationships— stockent les 15 taxonomies de véhicules.wp_options— stocke tous les réglages de l'extension, les marqueurs de version de schéma et les identifiants des pages créées lors de l'activation.wp_usersetwp_usermeta— utilisés indirectement via les capacités WordPress et les métadonnées utilisateur du profil de concessionnaire.
Capacités et rôles
L'extension gère un ensemble de capacités personnalisées stocké dans wp_user_roles (l'option WordPress standard) :
- Rôle personnalisé :
as24ci_editor. - Capacités personnalisées : l'ensemble de capacités
as24ci_caretas24ci_cars, plus la capacité de gestion de l'extensionmanage_as24_imports.
Transients
Utilisés pour les caches à courte durée de vie et les verrous inter-requêtes.
| Transient | Durée de vie (approx.) | Objectif |
|---|---|---|
as24ci_cron_import_running | ~40 min | Verrou à exécution unique pour le lanceur d'importation. |
as24ci_image_queue_running | ~10 min | Verrou à exécution unique pour le processus de file d'attente des images. |
as24ci_batch_queue | n/a | Charge utile de la file d'attente de lots en attente pour le Batch-Wizard. |
as24ci_access_token | Expiration du jeton | Cache du jeton d'accès OAuth. |
as24ci_gemini_models | Spécifique au fournisseur | Liste mise en cache des modèles Gemini gérés. |
as24ci_dashboard_page_data, as24ci_dashboard_api_status_v2 | n/a | Caches du tableau de bord. |
as24ci_dw_overview, as24ci_dw_ai_monitor, as24ci_dw_performance, as24ci_dw_recent_leads, as24ci_dw_pricing_intel | n/a | Caches des widgets du tableau de bord. |
as24ci_analytics_tab_{view} | n/a | Caches de l'onglet d'analyse. |
as24ci_health_ping_{service} | n/a | Caches de ping du bilan de santé. |
as24ci_import_{job_id} | n/a | Enregistrement de la progression par importation. |
as24ci_ai_kb_index_v1, as24ci_docs_v1_{path}, as24ci_models_cache_{hash} | n/a | Caches de la base de connaissances de l'IA / de la documentation. |
as24ci_rate_{email} | n/a | Limite de débit par e-mail pour le formulaire de contact. |
as24ci_analytics_market_intel | n/a | Cache du moteur de tarification. |
Les verrous obsolètes (plus anciens que la durée de vie) sont nettoyés automatiquement par le lanceur suivant.
Stockage du système de fichiers
- Les images importées sont stockées en tant que pièces jointes WordPress standard sous le répertoire des téléversements WordPress. Elles sont référencées depuis les véhicules via
_as24ci_image_ids. - Les images de galerie téléversées manuellement sont référencées via
_as24ci_manual_image_ids. Celles-ci ne sont jamais supprimées automatiquement par le programme de désinstallation. - Les journaux de l'extension sont écrits dans un fichier journal géré par l'extension avec une rotation automatique à une limite de 10 Mo. Le chemin exact est affiché dans l'onglet d'administration Journaux.
Comportement à la désinstallation
uninstall.php effectue toujours :
- La suppression des cinq tables personnalisées (
{prefix}as24_vehicles,{prefix}as24ci_analytics,{prefix}as24ci_search_agents,{prefix}as24ci_content_studio_jobs,{prefix}as24ci_content_studio_assets). - La suppression des options de version de schéma correspondantes.
- La suppression du verrou d'importation et des transients de jeton OAuth.
- L'effacement des événements cron planifiés de l'extension.
Supprimés uniquement lorsque as24ci_delete_data_on_uninstall est '1' :
- Toutes les publications
as24ci_car. - Toutes les publications
as24ci_lead. - Les pièces jointes importées référencées dans
_as24ci_image_ids. - Les pages dont les identifiants sont stockés dans
as24ci_page_archive_id,as24ci_page_compare_idetas24ci_page_favorites_id.
Jamais supprimés automatiquement :
- Les images téléversées manuellement référencées dans
_as24ci_manual_image_ids. - Les métadonnées de profil utilisateur du concessionnaire (les clés de métadonnées utilisateur
as24ci_seller_*).
Sur les installations multisites, la même logique est appliquée par site.
Notes opérationnelles
- Les mises à niveau de schéma sont idempotentes. Chaque classe propriétaire vérifie son option de version de schéma et quitte rapidement lorsque la table correspond déjà à la version attendue.
- Des requêtes directes
wpdbsur les tables personnalisées existent dans les chemins de code du répertoire, de l'analyse, de l'agent de recherche et de la désinstallation. Le code personnalisé qui contourne le répertoire doit traiter le schéma comme faisant partie du contrat interne de l'extension. - Traitez les colonnes
raw_data,equipment_*etimagescomme des blobs opaques et accédez-y via les assistants du répertoire lorsque cela est possible.