Un singolo campo o 2 campi per "descrizione" e "contenuto" dell'articolo?

0

Dire, voglio creare uno schema db per un blog. Finora ho usato 2 campi separati per "descrizione" e "contenuto" dell'articolo. Ma ho visto molto che di solito solo un singolo è usato per entrambi. La "descrizione" è tutto ciò che precede un tag speciale come "======== cut =======" e l'intero campo è "contenuto". Il tag "======== cut =======" viene troncato quando un articolo viene presentato a un utente.

Per me, entrambi gli approcci sono più o meno gli stessi. Quale è raccomandato? Quale pensi sia meglio?

    
posta Kakki 08.12.2017 - 14:06
fonte

2 risposte

7

Memorizzare cose che sono logicamente due cose diverse come una cosa significa sempre che devi eseguire un lavoro extra quando in realtà vuoi trattarle come cose diverse. Sembra uno sforzo inutile senza alcun guadagno: due colonne da tavolo svolgono perfettamente il lavoro. Puoi ancora recuperarli entrambi contemporaneamente con l'istruzione SELECT appropriata, o solo uno di loro, come la situazione garantisce.

    
risposta data 08.12.2017 - 14:20
fonte
1

In che modo i post vengono modificati, memorizzati e visualizzati indipendenti l'uno dall'altro. Internamente, è necessario utilizzare un formato di archiviazione che sia conveniente per l'applicazione. Quando mostri quel contenuto agli utenti, sei libero di combinarlo.

Nel software di blogging che ho scritto, ho deciso di mantenere i contenuti degli articoli separati dalla descrizione, perché:

  • non tutti gli articoli hanno una descrizione.
  • a volte l'articolo consiste solo nella descrizione e
  • la descrizione può essere presa dall'articolo o può essere un testo indipendente.

A causa di questi requisiti, il mio formato di input ha opzioni come la specifica di una descrizione indipendente o la partecipazione al corpo dell'articolo fino a quando non viene trovato un determinato tag marker.

Memorizzare la descrizione separatamente dagli altri contenuti rende anche più semplice il rendering della descrizione, ad es. in una lista di articoli: non devo analizzare prima tutto il corpo. Lo svantaggio è che se la descrizione è presa dal corpo, allora ho duplicato quel testo. Quando modifico il corpo, devo aggiornare anche la descrizione.

Ma le tue esigenze potrebbero essere molto diverse. Ad esempio, se la descrizione viene sempre presa dal corpo dell'articolo e non può essere un testo indipendente, è probabile che l'utilizzo di tale indicatore sia ragionevole. Può anche essere sensato memorizzare l'intero testo come una singola colonna di database, ma questo rende le query più difficili quando si desidera solo la descrizione.

Poiché le modifiche sono rare rispetto al rendering della descrizione, potrebbe essere ragionevole estrarre la descrizione ogni volta che l'articolo viene aggiornato e archiviare il contenuto (estratto) in un campo separato dal contenuto. Ciò non influisce in modo sensibile sulle prestazioni o sui requisiti di archiviazione, ma probabilmente semplifica la tua applicazione: devi solo occuparti di estrarre la descrizione in un unico luogo (quando una modifica è archiviata), non in ogni posto dove viene eseguita la descrizione.

    
risposta data 08.12.2017 - 14:27
fonte

Leggi altre domande sui tag