Diagramma ER per sistema gestione farmacia: entità, relazioni e design database
Un diagramma Entity-Relationship (ER) modella la struttura dati per un sistema gestione farmacia. Qui sotto un design normalizzato catturando entità core e relazioni.
Entità Core
Farmaco
- MedicineID (PK)
- Nome
- Descrizione
- QuantitaInStock
- PrezzoUnitario
- DataScadenza
- Produttore
- Categoria (OTP, Prescrizione, Controllato)
Cliente
- CustomerID (PK)
- Nome, Cognome
- Telefono
- Email
- Indirizzo
- DataNascita (per farmaci age-restricted)
- InfoAssicurazione (opzionale)
Dipendente
- EmployeeID (PK)
- Nome, Cognome
- Ruolo (Farmacista, Tecnico, Cassiere, Manager)
- NumeroLicenza (per farmacisti)
- DataAssunzione
- TurnoProgramma
Vendita (Transazione)
- SaleID (PK)
- CustomerID (FK)
- EmployeeID (FK) - chi processato vendita
- DataOraVendita
- TotaleImporto
- MetodoPagamento
- PrescriptionID (FK, nullable)
SaleItem (Righe vendita)
- SaleItemID (PK)
- SaleID (FK)
- MedicineID (FK)
- Quantità
- PrezzoUnitarioAlMomentoVendita
- Subtotale
Prescrizione
- PrescriptionID (PK)
- CustomerID (FK)
- PrescriberID (FK - medico esterno)
- DataEmissione
- DataEvasione
- Stato (Attiva, Evasa, Scaduta, Annullata)
- RicaricheRimanenti
Fornitore
- SupplierID (PK)
- Nome
- InfoContatto
- GiorniLeadTime
OrdineAcquisto
- POID (PK)
- SupplierID (FK)
- EmployeeID (FK - chi ordinato)
- DataOrdine
- DataConsegnaPrevista
- Stato
Relazioni Chiave
- Cliente 1:M Vendita (Un cliente fa molte vendite)
- Vendita 1:M SaleItem (Una vendita contiene multiple items)
- Farmaco 1:M SaleItem (Un farmaco appare in molte righe vendita)
- Dipendente 1:M Vendita (Un dipendente processa molte vendite)
- Cliente 1:M Prescrizione (Un cliente ha molte prescrizioni)
- Prescrizione 1:M Vendita (Una prescrizione può evadere su multiple vendite)
- Fornitore 1:M OrdineAcquisto
- OrdineAcquisto 1:M OrdineAcquistoItem (non mostrato, linka a Farmaco)
Note Design
- Separare Vendita e SaleItem permette items variabili per transazione
- Entità Prescrizione supporta tracking ricariche e compliance regolatorio
- Considerare aggiunta InventoryAuditLog per tracking discrepanze stock
- Indici su MedicineID, CustomerID, SaleDateTime ottimizzano query comuni