203 lines
5.8 KiB
Markdown
203 lines
5.8 KiB
Markdown
# 🗄️ 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`**
|