80 messaggi dal 17 maggio 2011
Ciao a tutti,

Devo gestire una parte documentale della mia applicazione.
In pratica ad ogni entità potrebbe essere collegato un file.

Entità A -> file
Entità B -> file
Entità C -> PiùFile.

Mi sto scervellando per capire come organizzare il model e filesystem

Opz1
Potrei creare un un model File e inserire una proprietà di navigazione ad ogni entità

Opz2
Me ne frego del Model File




Organizzazione file system

Opz1
Creo una sola cartella dove ci infilo i file, in questo caso devo dare nomi casuali al file e utilizzare il model file per recuperare il file.

Opz2
Genero una struttura di cartelle organizzate.
Qui possono nascere dei problemi, es dove storicizzo la path?
Se utilizzo il model file potrei creare una property con la path.
Senza model file creo una property nella Enity di tipo NOTMAPPED e tramite il get mi faccio ritornare la path assoluta del file (NB in questo caso il nome del file può essere l'identity)


Come gestire generalmente queste cose voi?


Ciao
Paolo
Modificato da fractals87 il 25 luglio 2019 17:04 -
Modificato da fractals87 il 25 luglio 2019 17:04 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Paolo,
non ho idea se ti convenga creare una classe di entità che rappresenti il file. Probabilmente sì se devi almeno tracciare lo storico dei caricamenti, modifiche e cancellazioni da parte degli utenti. Però, ripeto, non so cosa deve fare la tua applicazione quindi non posso dare un'opinione informata.


Mi sto scervellando per capire come organizzare il model e filesystem

Vuol dire che i requisiti non sono chiari. Fai domande ai committenti per capire cosa vogliono che sia realizzato.



Qui possono nascere dei problemi, es dove storicizzo la path?

O sull'entità che rappresenta il file, oppure da nessuna parte. Se crei una gerarchia tipo /tenant/idEntitàPadre/tipoAllegato/file1.pdf, i file li potrai recuperare in qualsiasi momento elencando tutti i file e le directory presenti in /tenant/idEntitàPadre/


Come gestire generalmente queste cose voi?

Dipende dai requisiti.

ciao,
Moreno

Enjoy learning and just keep making
80 messaggi dal 17 maggio 2011
Grazie mille delle risposte.
Dell'organizzazione del file sys al cliente nn importa qualsiasi accesso ai file li farà tramite app.
Mi sorgevano i seguenti dubbi
Avere un'unica directory dove buttare tutti i file è buona cosa?
A rigor di logica è la più semplice.
Creo il mio model File che carica la path del repository e poi ogni entity avrà una proprietà di navigazione al file o 1 a molti.

Ragionando sulla tavola degli accessi sui file farò diverse operazioni, percui mi piaceva avere l'idea di una entita "File" da cui recuperarli, e non fare accesso ricorsivo al file system.

La cosa negativa è che la classe File avrà una logica in base all'entità collegata.
Ad esempio se il file fa parte di un intervento il nomefile verrà imposto dall'applicazione con una logica non storicizzabile perchè mutevole nel tempo o in base alla logica di estrazione.
In una ipotetica classe file in questo caso la proprietà file name sarà null.

Nel caso di file uploadati dall'operatore in questo caso il file name dovrò storicizzarlo.

Presumo che molti sono problemi mentali miei, per questo volevo in vs, tuo consiglio.
Spero di aver chiarito meglio la situazione.
11.886 messaggi dal 09 febbraio 2002
Contributi

Avere un'unica directory dove buttare tutti i file è buona cosa?

A livello tecnico lo puoi fare, e avrai anche prestazioni migliori rispetto al creare delle directory annidate. Questo sembra valere sia per NTFS che per ext3/4, come leggi qui:
https://stackoverflow.com/questions/4356918/ntfs-directory-has-100k-entries-how-much-performance-boost-if-spread-over-100-s
https://medium.com/@hartator/benchmark-deep-directory-structure-vs-flat-directory-structure-to-store-millions-of-files-on-ext4-cac1000ca28

Il problema è se quelle directory avrà necessità di aprirla anche una persona da FTP o da Esplora Risorse. Il tempo di accesso sarà maggiore, perché FTP dovrà trasferire più dati, e perché i file avranno nomi casuali rendendoli irriconoscibili a meno che non si vada a sbirciare il nome dal database.

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.