2012-07-25 16 views
6

संभव डुप्लिकेट:
Schema for a multilanguage databaseबहुभाषी डेटा कैसे स्टोर करें?

मैं एक बहुत व्यस्त वेब अनुप्रयोग जो बहुभाषी डेटा है का निर्माण कर रहा हूँ। यह सब डेटा एक MySQL डेटाबेस में संग्रहीत है। इस डेटा को स्टोर करने का सबसे अच्छा तरीका क्या है?

  1. तालिका में अलग-अलग कॉलम प्रत्येक भाषा के लिए (title_en की तरह, title_fr)
  2. प्रत्येक भाषा के लिए अलग तालिकाओं (pages_en की तरह, pages_fr)
  3. अनुवाद के लिए पार तालिका (होने: मैं हालांकि कुछ अनुमान है पेज टेबल में एक आईडी और इस लिंक की गई आईडी को एक अनुवाद तालिका में रखना जहां ट्रांस_एएन, ट्रांस_एफआर जैसे कई कॉलम हैं)
  4. एक तालिका में गैर-बहुभाषी डेटा रखने के लिए उदाहरण के लिए प्रति पृष्ठ एक तालिका में पृष्ठों और अनुवादों के लिए पृष्ठ (pages_en, pages_fr)
  5. अन्य?
+0

ठीक है, मुझे दूसरे समाधान के साथ कोई समस्या दिखाई देती है क्योंकि यदि आप एक नई भाषा जोड़ते हैं और एक नई तालिका बनाते हैं, तो सभी गैर-बहुभाषी कॉलम को इस नई तालिका में कॉपी किया जाना चाहिए। लेकिन यह पहले समाधान की तुलना में शायद तेज़ है क्योंकि तालिका आकार में छोटा है। –

+0

तीसरा समाधान प्राथमिक तालिकाओं को बहुत साफ बनाता है, लेकिन मैन्युअल रखरखाव करना मुश्किल है और अनुवाद तालिका हत्यारा बड़ा होगा –

+0

दूसरा समाधान नई भाषाओं में विस्तार करना आसान है (केवल कॉलम जोड़ना) लेकिन भाषाओं को भारी रूप से बहुत बड़ा हो सकता है विस्तार करें) ... यहाँ थोड़ा फंस गया ... –

उत्तर

1

अगर मैं एक साइट बहुभाषी करना था, तो मैं db के रूप में इस डिजाइन होगा:

enter image description here

आवेदन का हर पृष्ठ एक से अधिक भाषाओं हो सकता है। पृष्ठ के लिए वांछित भाषा प्राप्त करने के लिए आपको केवल भाषा आईडी पर फ़िल्टर करना होगा।

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