Il mio database dovrebbe contenere i collegamenti ai file o contenere i file stessi?

4

Sto cercando di capire meglio come utilizzare un database in un sito web personale. Ho una serie di liste, come la mia lista della spesa, la lista delle cose da fare ecc. Attualmente sono tutte archiviate in file di testo con collegamenti hard-coded. Voglio iniziare a imparare cose di database con questo semplice problema: voglio essere in grado di memorizzare le mie liste in qualche modo, quindi recuperarle dal server senza dover codificare i miei collegamenti.

La mia domanda è: il mio database dovrebbe contenere i collegamenti ai file o contenere i file stessi? Se memorizza i collegamenti, dovrei creare un'applicazione Web che mi consenta di creare un elenco, archiviarlo sul server e quindi eseguire uno script lato server per aggiornare il database con le nuove informazioni? Ci scusiamo per la domanda per principianti ...

    
posta Michael Stachowsky 07.07.2016 - 15:38
fonte

2 risposte

3

Dato che i tuoi file sono solo file di testo contenenti righe di testo, il mio suggerimento è questo:

  • Non salvare collegamenti ai file
  • Non salvare i file stessi
  • Salva gli elementi dell'elenco nel database

Ecco un semplice modello fisico per archiviare gli elenchi:

  • Nel caso si trattasse di file di grandi dimensioni come file video o immagini di grandi dimensioni, è meglio archiviare l'URI / URL nell'immagine.
  • Per le immagini di piccole dimensioni memorizzarle come BLOB nel database non è una cattiva idea, ma suggerirei di metterle in una tabella separata con una relazione uno-a-uno in modo da poterle memorizzare in un tablespace separato. In questo caso, considera i problemi relativi al modo in cui i browser web memorizzano le immagini (vedi il commento di @ david-packer qui sotto).
risposta data 07.07.2016 - 16:23
fonte
0

Mentre puoi salvare i file nel DB, o salvare i collegamenti ai file .. questo non è quello che vuoi qui. SQLServer ha persino la caratteristica di collegare i file su disco nelle sue tabelle in modo che le immagini su disco sembrino essere parte del DB direttamente .. ma è un utilizzo piuttosto avanzato.

Quello che penso che tu voglia fare è archiviare i dati che hai attualmente nei file di testo nel DB. Da lì puoi scrivere un programma che può ricreare i file di testo dai dati del DB. Questo è il modo migliore per archiviare le cose, ottieni tutti i vantaggi di un DB per quanto riguarda i rapporti e le modifiche e hai anche la possibilità di salvare i dati nei file (e, impazzire, caricarli anche loro).

Quindi vorrai, in cima alla mia testa, un tavolo per contenere tutte le liste, e poi un altro per contenere tutti gli elementi in quelle liste. Se la tabella dell'elenco ha una colonna che indica a quale elenco appartiene, puoi facilmente ricreare un elenco con SQL come "seleziona * da lista-elementi dove list-id = x" dove x è l'elenco che vuoi ottenere ( es. "lista acquisti martedì" o "FAI DA TE").

Da lì, migliora solo - aggiunge più flessibilità per aggiungere nuovi elenchi, più opzioni dati, colonne datetime per contrassegnare le voci come completate o quando devono essere completate da.

    
risposta data 07.07.2016 - 16:38
fonte

Leggi altre domande sui tag