# πŸ—„οΈ NETGESCON DATABASE STRUTTURA ## Organizzazione sistematica del database NetGescon ### πŸ“… Versione: 3.0 - 5 Agosto 2025 ### 🎯 Obiettivo: Database strutturato per amministratori con codice univoco 8 cifre --- ## πŸ”‘ **CONNESSIONE DATABASE SVILUPPO** ### **Credenziali Standard NetGescon**: ```env # Database di sviluppo DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=netgescon DB_USERNAME=netgescon_user DB_PASSWORD=NetGescon2024! # Path Laravel DB_CONFIG_PATH=/var/www/netgescon/.env DB_MIGRATIONS_PATH=/var/www/netgescon/database/migrations/ ``` ### **Test Connessione**: ```bash # Verifica connessione database mysql -u netgescon_user -p netgescon # Password: NetGescon2024! # Oppure via Laravel cd /var/www/netgescon php artisan tinker DB::connection()->getPdo(); ``` --- ## πŸ—οΈ **ARCHITETTURA DATABASE** ### **🎯 Principio Fondamentale**: **Ogni amministratore ha un CODICE UNIVOCO di 8 CIFRE alfanumeriche che identifica la sua "bolla" di dati** ### **Vantaggi Architettura**: - βœ… **Isolamento dati** per amministratore - βœ… **PortabilitΓ ** database per singolo amministratore - βœ… **Backup selettivo** per codice amministratore - βœ… **ScalabilitΓ ** e distribuzione facilitata - βœ… **Security** multi-tenant nativa --- ## πŸ“‚ **STRUTTURA CARTELLE DATABASE** ### **πŸ“‹ Organizzazione File**: #### **01-struttura-principale/** - **`README.md`** - Tabelle core del sistema - **`amministratori.md`** - Tabella amministratori (codice 8 cifre) - **`users.md`** - Utenti sistema (collegati ad amministratore) - **`roles-permissions.md`** - Sistema ruoli e permessi - **`schema-completo.md`** - Schema ER completo #### **02-tabelle-collegate/** - **`stabili.md`** - Condomini e stabili - **`gestioni.md`** - Gestioni annuali - **`unita-immobiliari.md`** - UnitΓ  immobiliari - **`soggetti.md`** - Anagrafica persone/aziende - **`contabilita.md`** - Movimenti e piano conti - **`documenti.md`** - Sistema documentale #### **03-archivi-specifici/** - **`comuni-italiani.md`** - Anagrafica comuni (8100 record) - **`codici-catastali.md`** - Codici catastali - **`tabelle-millesimali.md`** - Template millesimi - **`piano-conti-standard.md`** - Piano conti default #### **04-migrations-seeds/** - **`migration-order.md`** - Ordine esecuzione migrations - **`seeder-data.md`** - Dati iniziali sistema - **`import-scripts.md`** - Script importazione dati - **`backup-restore.md`** - Procedure backup/restore --- ## 🎯 **TABELLE PRINCIPALI IDENTIFICATE** ### **βœ… Core Sistema (con codice amministratore)**: ```sql -- Tabella master con codice 8 cifre amministratori ( id, codice_univoco CHAR(8) UNIQUE, -- ES: A1B2C3D4 nome, cognome, email, created_at, updated_at ) -- Utenti collegati ad amministratore users ( id, amministratore_id, -- FK verso amministratori name, email, password, created_at, updated_at ) -- Stabili con filtro amministratore stabili ( id, amministratore_id, -- FK verso amministratori denominazione, indirizzo, created_at, updated_at ) ``` ### **βœ… Tabelle Collegate (filtrate per amministratore)**: - **gestioni** β†’ collegate a stabili β†’ filtrate per amministratore - **unita_immobiliari** β†’ collegate a stabili β†’ filtrate per amministratore - **soggetti** β†’ collegati a stabili β†’ filtrati per amministratore - **contabilita_registrazioni** β†’ collegate a gestioni β†’ filtrate per amministratore - **documenti** β†’ collegati a stabili β†’ filtrati per amministratore ### **βœ… Tabelle Condivise (senza filtro)**: - **comuni_italiani** β†’ anagrafica nazionale - **roles** β†’ ruoli sistema - **permissions** β†’ permessi sistema --- ## πŸ”„ **FLUSSO CREAZIONE DATABASE** ### **Step 1: Struttura Principale** 1. Leggi `01-struttura-principale/README.md` 2. Crea tabelle core (amministratori, users, roles) 3. Implementa sistema codice 8 cifre ### **Step 2: Tabelle Collegate** 1. Leggi `02-tabelle-collegate/README.md` 2. Crea tabelle business (stabili, gestioni, unita) 3. Implementa foreign keys con amministratore ### **Step 3: Archivi Specifici** 1. Leggi `03-archivi-specifici/README.md` 2. Importa comuni italiani (8100 record) 3. Configura dati master ### **Step 4: Migrations e Seeds** 1. Leggi `04-migrations-seeds/README.md` 2. Esegui migrations in ordine corretto 3. Popola con dati iniziali --- ## πŸ” **QUERY PATTERN STANDARD** ### **Filtro per Amministratore**: ```sql -- Pattern base per tutte le query SELECT s.*, a.codice_univoco as admin_code FROM stabili s JOIN amministratori a ON s.amministratore_id = a.id WHERE a.codice_univoco = 'A1B2C3D4'; -- Pattern Laravel $stabili = DB::table('stabili') ->join('amministratori', 'stabili.amministratore_id', '=', 'amministratori.id') ->where('amministratori.codice_univoco', auth()->user()->amministratore->codice_univoco) ->get(); ``` ### **Backup per Amministratore**: ```bash # Backup dati singolo amministratore mysqldump -u netgescon_user -p netgescon \ --where="amministratore_id IN (SELECT id FROM amministratori WHERE codice_univoco='A1B2C3D4')" \ stabili gestioni unita_immobiliari > backup_A1B2C3D4.sql ``` --- ## 🎯 **PROSSIMI PASSI** ### **Ora Procediamo Con**: 1. **πŸ“– Leggi** `01-struttura-principale/README.md` per tabelle core 2. **πŸ—οΈ Implementa** sistema amministratori con codice 8 cifre 3. **πŸ”— Collega** tutte le tabelle business con foreign key 4. **πŸ“Š Verifica** filtri e query pattern 5. **πŸ§ͺ Testa** con dati demo per 2-3 amministratori ### **File da Studiare in Ordine**: 1. `01-struttura-principale/amministratori.md` 2. `01-struttura-principale/users.md` 3. `02-tabelle-collegate/stabili.md` 4. `02-tabelle-collegate/gestioni.md` 5. `03-archivi-specifici/comuni-italiani.md` --- **🎯 DATABASE ORGANIZZATO E STRUTTURATO** **Ogni file contiene la documentazione completa per implementazione sistematica** **πŸ“– Inizia dalla lettura di `01-struttura-principale/README.md`**