[Db] Join tabella con nome database
Marcello Vezzelli
marcello a vezz.it
Mar 28 Nov 2006 15:42:46 CET
aldo bertoldini ha scritto:
> Il 28/11/06, Marcello Vezzelli<marcello a vezz.it> ha scritto:
>> aldo bertoldini ha scritto:
>> >
>> > 1- Il mio problema è questo: è possibile costruire delle join tra la
>> > tabella ecommerce.clienti ed i singoli database in una sola query?
>> Penso che dovresti usare nomedb.nometabella nelle join, dovrebbe
>> funzionare... non ho mai provato pero'.
> Certo che si possono fare join con nomedb.nometabella, però io non so
> a priori il nome del db: ci sono casi in cui parto dall'elenco dei
> clienti e di lì devo verificare quali sono i clienti che rispettano
> determinate condizioni (esempio stupido, verificare quali sono i
> clienti che hanno almeno 1000 prodotti o 100000 Euro di fatturato).
> Ovvio che posso farlo annidando le query una dentro l'altra, ma se
> fosse possibile 'joinare' il nome del db con 1 sola query avrei tutti
> i risultati, no?
In questo caso dovevi strutturare tutto diversamente, tenendo un db
unico e inserendo un riferimento al cliente nei record.
Così devi fare alcune query per capire il nome del database, poi altre
query per fare le selezioni tra i vari db... molto "accrocchio".
Una archiettura a db separati FORSE aveva senso se le relazioni tra i
clienti sono nulle o ridottissime...
> Comunque fare una ricerca in un database di 10000 prodotti (db unico)
> o di 100 prodotti (db separati) credo cambi notevolmente a livello
> prestazionale, no?
Una query di selezione, se la ricerca è indicizzata, rimane comunque
molto veloce... la differenza tra 100 e 10000 potrebbe essere poco
percettibile (se il server è ben dimensionato).
E cmq faresti una query sola anziché diverse...
E' tutto da valutare.
Io personalmente avevo da gestire un db di utenti iscritti su un sito
multiportale... ho optato per il db unico con riferimento al portale in
ogni utente, e mi sembra la soluzione ottimale.
Ciao
Marcello
Maggiori informazioni sulla lista
Db