Supponiamo che tu abbia un'applicazione che salva i file immagine (.jpg, .png ecc.) e di testo (.txt, .xml), e che l'applicazione abbia tutti i percorsi dei file codificati nel codice, come nell'esempio seguente.
Supponendo che la seguente struttura del percorso del file esista:
- jpg -
\MyFileServer\Media\jpg\
- png -
\MyFileServer\Media\png\
- txt -
\MyFileServer\Text\txt\
- xml -
\MyFileServer\Text\xml\
I file nei percorsi dei file di destinazione sono referenziati all'interno di una tabella, quindi in un esempio VBA il percorso del file sarebbe codificato come:
Dim myFilePath as String
Dim myFileName as String
myFileName = "puppies.jpg" 'This would be the result of a query in a real scenario
myFilePath = "\MyFileServer\Media\jpeg\" & myFileName
Ora dì che devo dividere \MyFileServer
in \MyMediaFileServer
e \MyTextFileServer
Ciò che sarebbe stato l'ideale è che se avessi una posizione centrale avrei potuto semplicemente modificare un valore di tabella o una variabile, piuttosto che arrancare attraverso ogni singola funzione nell'applicazione per aggiornare il percorso codificato. Solo per cambiarlo di nuovo in futuro, se la situazione si ripresenta. Quindi, il mio obiettivo è di assicurarmi che l'immagine dei miei cuccioli possa essere mostrata con il minimo sforzo.
Riguardo allo standard del settore, mi chiedevo quale sia l'opzione migliore, sia che si tratti delle mie due opzioni in basso o di un'altra opzione separata.
Opzione 1:
Tabella referenziale singolo:
Definito nella risposta di Mike al database gerarchico / albero per le directory nel filesystem da una struttura gerarchica come la seguente:
(ROOT)
/ \
Dir2 Dir3
/ \ \
Dir4 Dir5 Dir6
/
Dir7
Hai semplicemente una tabella come la seguente:
ID ParentID FilePath
______________________________________________
1 NULL \MyFileServer
2 1 \Images
3 2 \jpg
4 3 MB Files
OPPURE Opzione 2: Tabella di riferimento automatico con radici principali:
Una leggera deviazione sull'opzione 1.
Forse un percorso del file master sarebbe più chiaro. Dove c'è una tabella separata.
ID Name FilePath
______________________________________________
1 Image Root \MyMediaFileServer\Images
2 Text Root \MyTextFileServer\Text
Quindi nella struttura menzionata nell'opzione 1.
ID ParentID RootID FilePath
______________________________________________
1 NULL 1 \jpg
2 1 NULL MB Files
Ritengo che l'opzione 1 sia in generale più semplice da modificare, ma diventerà più confusa man mano che un albero si espande e l'opzione 2 consente una più semplice modifica del percorso del file. Opzione 1 IS la soluzione migliore per archiviare percorsi di file o esiste un altro standard di settore di cui non sono a conoscenza?