Requisiti delle tabelle di database personalizzate
Se lo schema del database viene personalizzato creando nuove tabelle, è necessario rispettare i seguenti requisiti per utilizzare il server di trasferimento:
- E' necessario definire una chiave primaria o un indice univoco.
Il server di trasferimento funziona in base alla chiave. Per evitare di registrare un numero eccessivo di dati nella tabella STAGLOG, registrare solo la chiave (chiave principale o indice univoco). I programmi di utilità di trasferimento utilizzeranno la chiave per la compressione e per il rilevamento dei dati da propagare. Se non sono presenti chiavi, i programmi di utilità di trasferimento non funzionano.
- Un ciclo di restrizione RI (referential integrity) non può esistere tra le tabelle.
Il server di trasferimento propaga sempre la tabella principale prima di quella secondaria. Se c'è un ciclo di restrizione RI, il server di trasferimento non può fare una distinzione tra le tabelle principali e quelle secondarie.
- Le tabelle di database contengono solo i dati di configurazione.
In uno scenario business-to-consumer i dati di configurazione sono controllati dal responsabile del sito, come ad esempio il catalogo e le voci di catalogo. Se una tabella contiene dati operativi, un cliente può modificare la stessa tabella in un database di produzione dopo che un responsabile del sito ha copiato la tabella sul server di trasferimento. Questo comporta un potenziale conflitto di chiave o una violazione delle restrizioni RI.
- Le tabelle di database non possono contenere alcun riferimento alle tabelle delle operazioni.
Le tabelle da propagare non devono avere alcun riferimento di chiave esterna alle chiavi prioncipali delle tabelle di database delle operazioni. Se tale riferimento è presente, non è possibile ripristinare i dati nel database del prodotto, nel caso in cui un cliente elimini la chiave principale dopo la copia di trasferimento.
Un trigger di inserimento non deve esistere quando si inseriscono due tabelle nel database di produzione.
Per qualsiasi delle due tabelle del server di trasferimento, come R1 e R2, non può esserci un trigger per inserire righe in R2 o R1 nel database di produzione. Il trigger di inserimento crea l'aggiornamento in entrambi i database e da origine a problemi di chiave.
- La tabella MEMBER non può avere un indice univoco.
- L'eliminazione delle restrizioni delle tabelle di database personalizzate è un processo che deve essere effettuato con cautela.
L'eliminazione delle restrizioni inibisce le prestazioni del programma di utilità Cleanup del database. E' possibile incontrare delle difficoltà quando si eliminano i dati dal database di trasferimento. Prima di poter eliminare i dati dal database di trasferimento, è necessario utilizzare manualmente il comando del programma di utilità Cleanup del database con l'opzione di forzatura per cancellare i dati dalle tabelle. In caso contrario, l'eliminazione dei dati dal database di trasferimento non riesce.
Per preparare il server di trasferimento per le tabelle personalizzate, fare riferimento a Configurazione del server di trasferimento per le tabelle personalizzate.