salve,
pippopd wrote:
buona giornata
devo migrare da access a sqlserver2005 6 applicazioni ospitate in un unico sito;
ora ogni applicazione ha un proprio database Access.
Secondo la vostra esperienza, organizzare in un unico database aziendale tutte le applicazioni migliora o peggiora in modo significativo le prestazioni?
Nel caso optassi per un unico database, è preferibile utilizzare per alcune strutture dati, come gli indirizzi, una unica tabella con un campo che definisce l'applicazione di riferimento o creare tabelle divise per ogni applicazione?
la centralizzazione ha senso solo se, ovviamente, i dati sono uniformi ed omogenei tra le applicazioni.. l'obiettivo prestazionale in questo senso (e comunque) e' irrilevante.. in caso di omogeinita' e' imperativo farlo in modo da garantire la corretta informazione senza dover procedere ad aggiornare piu' basi dati, in quanto l'informazione perderebbe la garanzia di univocita'..
definire degli attributi specifici di applicazione mi pare fuori luogo, in quanto e' irrilevante che l'anagrafica clienti sia utilizzata dall'applicativo CRM come anche dall'applicativo di contabilita' ordinaria o fatturazione.. tutti e tre attingono alla medesima fonte dati.. ed in ogni caso, modifiche e/o integrazioni successive possono sviare completamente il significato dell'attributo..
cosa ha sicuramente senso, specialmente in questi casi, e' una forte separazione in schemi, come nell'esempio di AdventureWorks di Microsoft SQL Server.. in questo modo definisci categoricamente a quale "area" di competenza appartiene ogni singolo oggetto..
relativamente all'accesso ai dati, che "dovresti" concedere solo tramite stored procedures [

], puoi eventualmente classificarti una naming convention che ti sia d'aiuto a riconoscere a colpo d'occhio l'applicativo interessato.. ad esempio, potresti utilizzare il suffisso CRM per il CRM, COM per tutte le comuni e via dicendo, ovviamente in base alla eventuale diversita' di utilizzo/accesso/codifica.. arrivando quindi ad un insieme di procedure quali
Anagrafica: lettura di singola riga per chiave:
contabilita' generale e fatturazione:
[Comuni].[usp_COGE_Anagrafica$GetByKey]
CRM: [Comuni].[usp_CRM_Anagrafica$GetByKey]
Anagrafica Azienda:
accesso dati generali aziena
tutte: [Comuni].[usp_COM_Azienda$Get]
tutte: [Comuni].[usp_COM_Azienda$Update]
e cosi' via... non esiste niente di "validante" lato server in questo senso, ma solo la tua forte imposizione di regole personali nella convenzione dei nomi puo' preservare la corretta implementazione..
saluti