Domanda

Ho bisogno che i clienti siano in grado di scaricare PDF di lettere che sono stati inviati loro.

Ho letto i thread sul database rispetto all'archiviazione del file system di documenti o immagini, e sembra che il consenso sia che, per qualcosa di più di poche immagini, il filesystem è la strada da percorrere.

Quello che voglio sapere:

  • sarebbe un'alternativa ragionevole semplicemente archiviare i dettagli della lettera nel database e ricreare il PDF "al volo" quando viene richiesto?
  • Questo approccio è superiore o inferiore al recupero del PDF dal filesystem?
È stato utile?

Soluzione

Lo conserverei per due motivi

1) Se cambieresti mai il modo in cui generi il PDF, probabilmente non vorrai cambiare gli elementi storici. Se li generi ogni volta, o cambieranno o devi mantenere il codice di compatibilità per generare "vecchio stile" record

2) Lo spazio su disco è economico. La pazienza dell'utente non lo è. A meno che tu non sia veramente pressato per l'archiviazione o estrarre l'archiviazione sia più difficile della generazione del PDF, sii gentile con i tuoi utenti e salvalo.

Ovviamente se ne crei migliaia all'ora da un set di dati sparso, potresti non avere l'archiviazione. Ma se hai lo spazio, voterei per " usalo "

Altri suggerimenti

Se è a scopo di archiviazione, memorizzerei sicuramente il PDF perché in futuro il tuo script di generazione PDF potrebbe cambiare e quindi la lettera non sarà esattamente la stessa di quella originariamente inviata. Il cliente si aspetta che sia esattamente lo stesso.

Non importa quale approccio sia superiore, a volte è meglio scegliere quale approccio sia più sicuro.

C'è un motivo forense per cui è necessario conservare i registri delle lettere inviate ai clienti? Se hai intenzione di rigenerarti al volo, come fai a sapere che future modifiche al codice non riscriveranno la lettera (o, almeno, il cliente può presentare tale argomento in tribunale se le informazioni vengono utilizzate in una causa) ...

Sono propenso a dire " dipende " ;.

Quando un documento viene richiesto più volte, può essere un risparmio se lo si compone sulla prima richiesta e lo si recupera in modo sequenziale.

OTOH se la maggior parte delle richieste di un documento sono del tipo one-once e il processo di creazione non consuma la maggior parte della capacità del tuo server, al volo avrà un chiaro vantaggio.

Se si utilizza ASP.NET, perché non memorizzare nella cache il PDF. La cache può essere archiviata nel database se lo desideri o lasciata in memoria per tutto il tempo necessario. La libreria aziendale implementa questa soluzione nel blocco dell'applicazione di memorizzazione nella cache ed è straordinariamente semplice da usare. Se si memorizza nella cache l'oggetto, creare uno spazio di archiviazione nel database utilizzando il blocco e caricarlo quando è necessario non sarà necessario preoccuparsi di ricrearlo.

Poche cose da considerare, il PDF viene generato in base ai dati esistenti a un certo punto nel tempo. PER ESEMPIO. una fattura basata sui dati del mese precedente?

In tal caso, useresti lo stesso modello ogni mese per generare questa lettera? Cosa succede se / quando il formato della lettera cambia, se ti rigeneri al volo non è più lo stesso che è stato inviato a loro. La memorizzazione del flusso PDF nel database è una possibilità?

Immagino a cosa sto arrivando, hai bisogno di una rappresentazione esatta di ciò che è stato inviato all'utente o è flessibile?

La domanda se generare o meno i pdf in modo dinamico o archiviarli in modo statico suona più come una questione di diritto che una questione di programmazione.

Se non si ha accesso a consulenti legali che possono fornire indicazioni in merito, sarà molto più sicuro sbagliare a parte cautela e archiviarle staticamente.

Finché il documento PDF è di natura permanente (non solo un documento di lavoro, ma qualcosa di ufficiale firmato e inviato da qualche altra parte nella società o al di fuori della società), dovresti avere una copia di questo file PDF sulla tua rete e un link a questo file nel tuo database.

Non puoi fare affidamento sui dati disponibili per riprodurre lo stesso documento in un momento diverso principalmente perché:

  1. I dati possono essere modificati (sì! supponiamo che la lettera sia regolata per essere firmata dal Capo Dipartimento e che il personale sia cambiato?)
  2. Il formato del rapporto cambierà (intestazione, piè di pagina, logo, ecc.)
  3. Il documento che hai prodotto è conservato da qualcun altro che utilizzerà i dati disponibili nel documento.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top