2009-01-29 10 views
18

मैं एक प्रोजेक्ट में एक हल्के स्वरूपण भाषा (शायद वस्त्र, शायद मार्कडाउन) को लागू करने जा रहा हूं, और मुझे आश्चर्य है कि डेटाबेस में इसे कैसे स्टोर करना सबसे अच्छा है।डेटाबेस में हल्के स्वरूपण (वस्त्र, मार्कडाउन) को कैसे स्टोर करें?

यदि उपयोगकर्ता पोस्ट करने वाली सामग्री को संपादित करने में सक्षम है, तो मुझे यह समझ में आता है कि मूल, गैर-रूपांतरित मार्कअप संग्रहीत किया जाना चाहिए ताकि उपयोगकर्ता को अगली बार HTML संपादित करना पड़े। लेकिन चूंकि सामग्री को संपादित करने से बहुत अधिक प्रदर्शित किया जा रहा है, इसलिए सामग्री की एक परिवर्तित प्रति स्टोर करने के लिए भी यह समझ में आता है कि मूल को प्रत्येक पृष्ठ दृश्य पर वस्त्र के माध्यम से नहीं भेजा जाना चाहिए।

तो, डेटाबेस में मूल और रूपांतरित दोनों सामग्री को स्टोर करने के लिए सामान्य प्रथा है? क्या कोई बेहतर तरीका है?

धन्यवाद!

उत्तर

25

स्टोर markdown:

  • हर दृश्य = रूपांतरण
  • हर संपादित = कोई प्रोसेसिंग

स्टोर एचटीएमएल

  • हर दृश्य = कोई प्रोसेसिंग
  • हर संपादित = Markdown में परिवर्तित होकर वापस

स्टोर दोनों

  • हर दृश्य = कोई प्रोसेसिंग
  • हर संपादित = संपादित
  • के बाद HTML करने के लिए परिवर्तित

आपको अपनी स्टोरेज लागत बनाम अपनी प्रसंस्करण लागत का वजन करना होगा।

1

आपको निश्चित रूप से मूल वस्त्र/मार्कडाउन मार्कअप स्टोर करना चाहिए और मानक HTTP कैशिंग सामग्री (अंतिम-संशोधित, समाप्ति-समय, ईटीएजी) का उपयोग प्रस्तुत पृष्ठों को कैश करने के लिए करना चाहिए या प्रोसेसिंग मार्कअप के परिणाम को कैश करना चाहिए।

1

मैं वर्तमान में PHP के साथ मार्कडाउन का उपयोग कर रहा हूं। मैं डेटाबेस में मार्कडाउन-स्रोत संग्रहीत करता हूं, और मैं अनुरोध पर कनवर्टेड संस्करण प्रदर्शित करता हूं। मेरे पास कोई प्रदर्शन समस्या नहीं है, और मैं इस सेटअप से बहुत खुश हूं।

1

जो मैंने देखा है वह संकलित HTML को डेटाबेस में एक अलग पंक्ति में संग्रहीत करना है। बस एक पंक्ति 'सामग्री' और एक और 'content_html' है, और संकलित HTML को 'content_html' पंक्ति में सहेजें।

(निश्चित रूप से आप विधि है कि आप ऐसा करने के लिए ओवरराइड कर सकते हैं बचाने के कुछ प्रकार है?)

संबंधित मुद्दे