2012-02-09 12 views
7

Sto creando un CMS personalizzato per il mio sito e sto andando a memorizzare articoli (testo e immagini per articolo) in un database mysql. quale tipo di dati è più adatto per quel compito?Quale tipo di dati è il migliore per la memorizzazione di articoli nel database SQL?

+0

Presumere 'TEXT' sarebbe il miglior tipo di dati per questo. –

+1

Non conosco il motivo esatto per cui si desidera archiviare le immagini nel database, ma ritengo sia opportuno tenere le immagini sul disco locale delle immagini e memorizzare solo "percorso" nel database. Sarà buono per le prestazioni. Ignora me se sbaglio. Non sono un esperto di CMS. Saluti – Scorpion

risposta

5

Non provare a memorizzare testo e immagini in un singolo campo e in questo caso non è consigliabile memorizzare le immagini nel proprio database.

La soluzione migliore sarebbe utilizzare un tipo di sistema di markup nei tuoi articoli: è semplicemente un sottoinsieme filtrato di html, archiviato come testo normale nel database e quindi analizzato nel browser in in qualche modo. Ovviamente se si utilizza l'html filtrato non è necessario scrivere alcun codice speciale per analizzarlo, ma l'adozione di questo approccio solleva possibili problemi di sicurezza.

Altre opzioni da esaminare includono Markdown (il sistema utilizzato da questo sito) e BBCode (utilizzato principalmente dai forum online), così come molti altri.

Per riepilogare: non memorizzare immagini e testo in un campo. Memorizza il testo e interpreta il testo per caricare immagini e altri media nei tuoi articoli, a seconda dei casi.

1

Salvare le immagini come VARCHAR, ma solo il nome dell'immagine (e/o la posizione, a seconda di quanto grande è il tuo cms), salvare il testo come - TEXT.

1

Nel mio modo di utilizzare il testo per articoli, contenente caratteri HTML, questo è quello che uso. Ma ci sono molte altre cose da considerare. Dipende dal contenuto dei tuoi articoli. Nelle tue immagini dipende da te, ti limiterai a memorizzare il percorso dell'immagine, a meno che tu non abbia intenzione di memorizzare l'immagine stessa.

0

Memorizza immagini e testo separatamente. Supponendo che tu stia cercando di memorizzare le immagini binarie nel database, ti consiglio di salvare le immagini come un tipo di dati BLOB e TEXT per il testo.

Non utilizzare VARCHAR per il testo dell'articolo perché non si espande dinamicamente oltre le dimensioni.

1

Si prega di vedere questo article in cui Microsoft insiste che il tipo di dati text sta per scomparire e, pertanto, non dovrebbe essere utilizzato in un nuovo sviluppo. Le alternative sono varchar e nvarchar per il testo e varbinary per le immagini.

0

VARCHAR sarebbe la scelta migliore per la memorizzazione di articoli di testo come testo e tipi di dati di immagini scomparirebbero in futuro.

Per le immagini è possibile memorizzarle in una cartella simile a quella che si usa per css/js e memorizzare il suo valore src nel database. Ciò sarebbe efficiente in termini di velocità e spazio di archiviazione.

Problemi correlati