Ho iniziato a lavorare su un progetto esistente e lo sviluppatore precedente aveva suddiviso una tabella in 10 tabelle separate con schemi identici ma dati diversi.
I tavoli sono così:
[tableName_0]
[tableName_1]
[tableName_2]
[tableName_3]
[tableName_4]
[tableName_5]
[tableName_6]
[tableName_7]
[tableName_8]
[tableName_9]
La chiave primaria è un id
campo intero . L'applicazione utilizza un algoritmo hash ( id
mod 10) per sapere a quale tabella accedere durante le ricerche. Ad esempio id
= 10 si tradurrebbe in [tableName_0]
.
Combinati, le tabelle hanno probabilmente 100.000 righe e il tasso di crescita è relativamente basso.
Quindi, la mia domanda è se questa è una soluzione praticabile o anche se è una buona pratica in qualsiasi situazione. La mia teoria è quella di spingerli a combinarli in quanto renderà le cose più facili per quanto riguarda UNION
s, ecc. L'aspetto negativo principale sta cambiando tutto il codice dell'applicazione e se ne vale la pena nel lungo periodo.