بيانات جيدة تصميم الجدول لتخزين الإصدارات المترجمة من البيانات [مغلقة]

StackOverflow https://stackoverflow.com/questions/133313

سؤال

أنا أحاول أن تصميم بعض الجداول لتخزين بعض البيانات التي يمكن تحويلها إلى لغات مختلفة في وقت لاحق.أي شخص يمكن أن توفر بعض "أفضل الممارسات" أو مبادئ توجيهية من أجل هذا ؟

شكرا

هل كانت مفيدة؟

المحلول

دعونا نقول لديك الجدول المنتجات التي تبدو مثل هذا:

Products
----------
id
price

Products_Translations
----------------------
product_id
locale
name
description

ثم يمكنك فقط الانضمام على product_id = المنتج.id حيث لغة='en-US'

بالطبع هذا له تأثير على الأداء منذ الآن بحاجة إلى الانضمام إلى الحصول على الاسم والوصف ، ولكنه يسمح لأي عدد من اللغات في وقت لاحق.

نصائح أخرى

أنا beleve المزيد من المعلومات على ما تقومون به من شأنه أن يكون مفيدا.يمكنك إعطاء بعض عينات من البيانات ؟ و ماذا تعني ؟ أن سوف يكون هناك الكثير من البيانات إدراج أكثر من الوقت و الكثير من التغييرات على البيانات أو البيانات فقط يجب أن تكون متاحة لفترة صغيرة من الوقت.

في عام ، ربما يجب عليك أن تبحث في الأصل مع الشائعة غير مترجمة البيانات الطفل الجدول مع البيانات المحلية واللغة الرئيسية.إذا الحيوية ، يعني أنه في كثير من الأحيان ، قد ترغب في إلقاء نظرة على استخدام مشغلات شيئا مثل 'translationRequired' العلم بمناسبة الأشياء التي هي في حاجة إلى الترجمة بعد إجراء تغيير.

هل يمكنك وصف الطبيعة الديناميكية البيانات'?

طريقة واحدة لتنفيذ هذا أن يكون 3 جداول مختلفة:

  • اللغة الجدول
    • هذا الجدول سوف تخزن لغة رئيسية :
    [1, English], 
    [2, Spanish]
  • بيانات تعريف الجدول
    • عندما ديناميكية البيانات دخلت لأول مرة أسجل في هذا الجدول مع معرف البيانات:
      [1, 'Data1'], 
      [2, 'Data2']
  • Data_Language الجدول
    • هذا الجدول سوف ربط لغة تعريف البيانات و الترجمة
      So: [Data_Language, Data_Definition, Language, Translation]
          [1, 1, 1, 'Red']
          [2, 1, 2, 'Rojo']
          [3, 2, 1, 'Green']
          [4, 2, 2, 'Verde']

          etc ...

عندما ديناميكية يتم إدخال البيانات إنشاء الافتراضي 'الإنجليزية' سجل ثم تترجم في وقت فراغك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top