peruzzo ha scritto:
Se hai una matrica 5000x5000 di object non puoi fare la trasposta inoltre metti il caso di avere 4999 colonne di double e 1 colonna di string ovvero una matrice "mista" di 5000x5000; con il tuo sistema non te la cavi, per questo cercavo di allargarmi alle tabelle conservando nei campi la memoria del tipo di oggetto (stringa, double, ecc...), la mia non era affatto una provocazione e come ho già detto la tua è davvero una bella soluzione ma non espandibile a tutti i contesti... tutto qui...
1) se hai una
matrice, puoi
sempre fare la trasposta.
2) e'
sbagliato avere una matrice con 4999 colonne double ed 1 colonna string. A parte il fatto che non c'e' linguaggio di programmazione che ti permette di esprimere una cosa del genere. Al limite si possono fare delle matrici i cui singoli elemento possono essere
un double oppure una stringa, oppure di tipo
Object,
Variant, cioe' un tipo che e' supertipo sia per i double ce per le stringhe. Ma qui si va ad incorrere in pesanti problemi di efficienza (l'oggetto deve essere convertito in double), di memoria inutilmente allocata (un double in forma di object e' un oggetto decisamente piu' grande di 8 byte),
3) se il problema e' avere una colonna di tipo stringa e tutto il resto di tipo double, non si una un'unica struttura dati, ma se ne usano 2
Si ritorna al punto di partenza: un datase relazionale
non e' fatto per trattare tabelle 5000x5000 o anche 1.000.000x1.000.000. E
non e' fatto per trattare righe di tipo diverso.
E' stato pensato per supportare
l'algebra relazionale.
Per fare quello che ti serve, un database
non e' lo strumeto adatto.
Ti stai sforzando di trattare una vite come un chiodo: si puo' fare, ma ci saranno piu' problemi che benefici.
I database relazionali
vanno usati se il problema da affrontare si puo' risolvere con l'algebra relazionale.
A te servono delle strutture dati dedicate.
Ad esempio: per gestire una matrice
di dati dello stesso tipo di dimensioni gigantesche, e la vuoi persistente, si possono utilizzare i
memory mapped file (in un modo o nell'altro, tutti i SO mettono a disposizione un tale tipo di oggetto).
Non conviene mai forzare uno strumento a funzionare in modo difforma da quello che e' il suo modo naturale. Meglio cercare uno strumento piu' adatto allo scopo.