dubbio concettuale progettazione database

parsifal

Nuovo Utente
18 Gen 2014
26
0
0
salve a tutti, vi chiedo aiuto per un mio dubbio sull'efficienza di una query mysql su due differenti implementazioni delle tabelle nel db mysql.

opzione1)

creo una tabella UTENTE contenente gli attributi: nomeUtente, pass, info varie.
creo un unica tabella ACQUISTI contetnente gli attributi: nomeUtente(associato ad un determinato UTENTE), ed info varie.

con questa implementazione dovrei interrogare periodicamente(ogni x secondi) la tabella ACQUISTI e cercare le tuple in base al nomeUtente richiesto, quindi ignorando tutte le altre tuple che non hanno il nomeUtente richiesto nel momento.

opzione2)


creo una tabella UTENTE contenente gli attributi: nome utente, pass, info varie.
creo per ogni utente una tabella ACQUISTI_$nomeUtente contente solo gli attributi relativi agli acquisti.

con questa implementazione dovrei interrogare periodicamente solo la tabella ACQUISTI_$nomeUtente senza dover cercare in un unica tabella il nomeUtente associato nell'opzione1.

adesso la mia domanda è una: nel momento in cui nel mio db ho un gran numero di tuple nella tabella UTENTI e allo stesso tempo diverse tuple per gestire gli acquisti relativi all'utente, mi conviene usare l'implementazione dell'opzione1 o quella dell'opzione2(considerando che più utenti contemporaneamente dovranno effettuare query al db periodicamente)?
oppure magari se c'è un'implementazione più efficente che non conosco, accetto consigli.

spero di essere stato abbastanza chiaro. grazie in anticipo
 
il "motore" e le strutture del database sono costruite proprio per evitare le opzioni 2 anche per milioni di elementi memorizzati
sicuramente un indice comune (nomeUtente) permette la ricerca con una select semplice e in tempi molto contenuti
non ho visto però un elemento che permetta di essere incluso nella chiave di ricerca e che limiti la selezione alle sole righe
necessarie, se ricorre il caso
ciao
Marino
 
non ho visto però un elemento che permetta di essere incluso nella chiave di ricerca e che limiti la selezione alle sole righe
necessarie, se ricorre il caso
Marino

non ho capito bene cosa intendi in quest'ultima parte, ti spiacerebbe spiegarmi un attimo?
grazie ancora per la risposta comunque:)
 
interroghi la tabella acquisti selezionando un certo cliente, ma di quel cliente ti servono sempre tutte le righe o per esempio solo quelle "non servite" ?
come dicevo, se ricorre questo caso, puoi creare una chiave composta dal cliente e dall' indicatore "non servita" in modo che la ricerca estragga il minimo possibile
diventa però importante gestire bene l'indicatore "non servita"
sufficiente ? ciao
Marino
 

Discussioni simili

M
Risposte
6
Visite
3K
HTML e CSS
Membro cancellato 26246
M