Scalabilità grandi numeri
VDN Database Centrale V2.1.1 — preparazione 20.000 attività e 2.000.000 Clienti
Dashboard Verifica scalabilità Genera demo carico leggero
Nota: questa versione non carica milioni di record nel DB locale. Predispone invece indici, paginazione, limiti UI/API, metriche e documentazione per migrazione a PostgreSQL.
Target produzione
Attività/Negozi
20000
20.000 schede con credito, coupon, Stripe, vendite e materiali
Clienti
2000000
2.000.000 schede; accesso sempre tramite codice/telefono/email/QR
Vendite storiche
10000000
registro append-only, filtri per data/Cliente/Negozio
Movimenti Punti
20000000
saldo corrente su Cliente + storico verificabile
Movimenti Credito/Fee
10000000
credito corrente su Negozio + registro contabile
Limiti operativi obbligatori
default_page_size = 50max_page_size = 200export_batch_size = 5000operazioni_async_soglia_righe = 10000Regola: nessuna pagina deve caricare tutti i Clienti, tutti i Negozi o tutto lo storico. Sempre ricerca, filtri e paginazione.
Aree/pagine critiche
| Area | Regola |
|---|---|
| /clienti | ricerca + limite; vietato caricare 2.000.000 Clienti in una pagina |
| /negozi | ricerca + limite; vietato caricare 20.000 Negozi senza paginazione |
| /registro-vendite-punti | limite righe e filtro per data/Cliente/Negozio |
| /vendite-offline | limite righe e dettaglio per singola vendita |
| /movimenti-punti | storico append-only filtrato per Cliente e periodo |
| /credito-ricaricabile | riepilogo per Negozio, non storico completo |
| /fee-2 | report filtrato e export a batch |
| /scambio-dati | processamento file a batch con idempotency_key |
| /stripe-connect | solo stato sintetico; dettaglio e onboarding per singolo Negozio |
| /vendite-online | lista paginata; dettaglio per singolo ordine online |
| /prodotti-servizi | catalogo paginato/filtrato per Negozio, categoria e stato; vietato caricare tutto il catalogo senza limiti |
Indici predisposti
| Indice | Tabella | Colonne |
|---|---|---|
| idx_clienti_codice | clienti | codice_cliente |
| idx_clienti_email | clienti | |
| idx_clienti_telefono | clienti | telefono |
| idx_clienti_stato | clienti | stato_cliente |
| idx_negozi_piva | negozi | partita_iva |
| idx_negozi_stato | negozi | stato_negozio |
| idx_negozi_comune_categoria | negozi | comune, categoria |
| idx_vendite_negozio_data | vendite_tracciate | id_negozio, data_vendita |
| idx_vendite_cliente_data | vendite_tracciate | id_cliente, data_vendita |
| idx_offline_canale | vendite_offline_operazioni | canale_vendita |
| idx_movpunti_cliente_data | movimenti_punti | id_cliente, data_movimento |
| idx_movpunti_vendita | movimenti_punti | id_vendita |
| idx_movcredito_negozio_data | movimenti_credito | id_negozio, data_movimento |
| idx_movcredito_tipo | movimenti_credito | tipo_movimento |
| idx_coupon_negozio_stato | coupon_omaggi | id_negozio, stato_coupon |
| idx_coupon_utilizzi_cliente | coupon_utilizzi | id_coupon, id_cliente |
| idx_fee_vendita | registro_fee_2 | id_vendita |
| idx_fee_negozio_data | registro_fee_2 | id_negozio, data_fee |
| idx_scambio_idempotency | messaggi_scambio | idempotency_key |
| idx_filelog_stato | vdn_scambio_file_log | stato, data_operazione |
| idx_offline_vendita | vendite_offline_operazioni | id_vendita |
| idx_offline_negozio_data | vendite_offline_operazioni | id_negozio, data_operazione |
| idx_stripe_negozio | stripe_connect_negozi | id_negozio |
| idx_stripe_stato | stripe_connect_negozi | stato_connect, vendite_online_abilitate |
| idx_online_prodotti_negozio | prodotti_servizi_online | id_negozio, stato_prodotto, vendibile_online |
| idx_prodotti_codice | prodotti_servizi_online | codice_prodotto |
| idx_prodotti_categoria_stato | prodotti_servizi_online | categoria, stato_prodotto, stato_verifica |
| idx_prodotti_negozio_categoria | prodotti_servizi_online | id_negozio, categoria, tipo |
| idx_online_ordini_negozio_data | ordini_online | id_negozio, data_ordine |
| idx_online_ordini_cliente_data | ordini_online | id_cliente, data_ordine |
| idx_online_ordini_vendita | ordini_online | id_vendita |
| idx_online_pagamenti_ordine | pagamenti_online_simulati | id_ordine, stato_pagamento |
Metriche locali
| Area | Nome | Atteso | Attuale | Stato | Note |
|---|---|---|---|---|---|
| ANAGRAFICHE | Target Clienti | 2000000 | 101 | SIMULAZIONE | Target produzione, non da caricare nella demo locale |
| ANAGRAFICHE | Target Negozi | 20000 | 29 | SIMULAZIONE | Target produzione |
| DATABASE | Indici scalabilità attivi | 32 | 32 | OK | Indici predisposti su SQLite in vista PostgreSQL |
| UI_API | Limite massimo pagina | 200 | 200 | OK | Le viste operative devono usare paginazione/filtri |