Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Relazione molti a molti
lunedì 27 aprile 2009 - 15.08
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
thebestmaster89
Profilo
| Newbie
17
messaggi | Data Invio:
lun 27 apr 2009 - 15:08
Ho 3 tabelle: la prima contenente le informazioni sui clienti, la seconda che contiene i prodotti ed una terza ipotetica che dovrebbe contenere i listini da applicare al prodotto per uno specifico cliente. La relazione sembra essere del tipo molti a molti in quanto un cliente può comprare più prodotti e un prodotto può avere più di un aquirente. Se consideriamo la tabella clienti con 1000 record e quella dei prodotti con altrettanti record; la tabella di relazione in teoria dovrebbe contenere 1000 * 1000 = 1.000.000, dove per ciascun record avrei: CODICE_CLIENTE | CODICE_PRODOTTO | PREZZO.
Siccome lavoro su dispositivi mobili utilizzando SQL Server Compact Edition 3.5 reputo abbastanza impensabile riempire la tabella di un milione di record anche perchè occuperebbe uno spazio enorme e mi farebbe fare delle query lente come lumache. Avete qualche metodo da consigliarmi per velocizzare e snellire il tutto, tenendo conto che un listino è possibile applicarlo a più clienti quindi molti record si ripetono inutilmente?
Ringrazio anticipatamente tutti quelli che si interesseranno al problema.
Ciao a tutti
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 27 apr 2009 - 15:20
>Ho 3 tabelle: la prima contenente le informazioni sui clienti,
>la seconda che contiene i prodotti ed una terza ipotetica che
>dovrebbe contenere i listini da applicare al prodotto per uno
>specifico cliente. La relazione sembra essere del tipo molti
>a molti in quanto un cliente può comprare più prodotti e un prodotto
>può avere più di un aquirente. Se consideriamo la tabella clienti
>con 1000 record e quella dei prodotti con altrettanti record;
>la tabella di relazione in teoria dovrebbe contenere 1000 * 1000
>= 1.000.000, dove per ciascun record avrei: CODICE_CLIENTE |
>CODICE_PRODOTTO | PREZZO.
Ciao Luca,
hai detto bene, TEORICAMENTE
Non è detto che ogni cliente acquisti tutti i prodotti e che un prodotto sia acquiatato da tutti i clienti, quindi in pratica le righe nella tabella di giunzione saranno molte meno.
>Ringrazio anticipatamente tutti quelli che si interesseranno
>al problema.
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
thebestmaster89
Profilo
| Newbie
17
messaggi | Data Invio:
lun 27 apr 2009 - 15:29
Quindi come imposto la relazione se ad es. il prodotto 1 lo faccio pagare 10€ a 900 clienti e poi a 100 lo faccio pagare 9€? In teoria dovrebbero essere 2 soli record ma non so come impostarli.
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 27 apr 2009 - 15:31
>Quindi come imposto la relazione se ad es. il prodotto 1 lo faccio
>pagare 10€ a 900 clienti e poi a 100 lo faccio pagare 9€? In
>teoria dovrebbero essere 2 soli record ma non so come impostarli.
Perché 2 righe? Per me sono 900 + 100 = 1000.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
thebestmaster89
Profilo
| Newbie
17
messaggi | Data Invio:
lun 27 apr 2009 - 15:37
Grazie x la risposta velocissima!
Ma se sono 1000 per il solo prodotto 1, se moltiplico per i 1000 prodotti a disposizione ottengo di nuovo 1 milione di record. Io invece auspicavo in una soluzione di "raggruppamento" che mi permettesse di creare una sorta di gruppo di clienti al quale applicare il listino. In questo modo al gruppo di 900 applico 10€ e a quello di 100 applico 10€. In questo caso risparmiavo un bel po' di risorse. Però magari non è possibile farlo. La mia era un'idea.
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 27 apr 2009 - 15:42
>Ma se sono 1000 per il solo prodotto 1, se moltiplico per i 1000
>prodotti a disposizione ottengo di nuovo 1 milione di record.
Ma scusa, la tabella di giunzione devi precompilarla con tutte le combinazioni?
>Io invece auspicavo in una soluzione di "raggruppamento" che
>mi permettesse di creare una sorta di gruppo di clienti al quale
>applicare il listino. In questo modo al gruppo di 900 applico
>10€ e a quello di 100 applico 10€. In questo caso risparmiavo
>un bel po' di risorse. Però magari non è possibile farlo. La
>mia era un'idea.
Per farlo devi aggiungere una ulteriore tabella di raggruppamento, definendo struttura e relationship in base alla tua analisi.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
thebestmaster89
Profilo
| Newbie
17
messaggi | Data Invio:
lun 27 apr 2009 - 15:52
>Ma scusa, la tabella di giunzione devi precompilarla con tutte le combinazioni?
Purtroppo me la devo compilare "a mano" (da codice) in quanto ho un gestionale che mi passa un file di testo con i listini dei soli clienti che variano e un listino base che deve essere applicato a tutti gli altri. Dove non vi è un listino specifico deve essere applicato un prezzo base. In pratica non è da compilare con tutte le combinazioni la mia tabella listini, però un prodotto può potenzialmente essere venduto a chiunque, quindi un prezzo deve averlo per forza.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !