ورود

View Full Version : طراحی دیتابیس چند زبانه



saeidgab
سه شنبه 15 تیر 1395, 16:46 عصر
سلام، در حال طراحی دیتابیس یه سایت رزرو هتل چند زبانه هستم که به یه مورد برخوردم که مطمئن نیستم دارم کار درست رو انجام میدم یا نه لطفا اگر تجربه ای دارین راهنمایی کنید.

مسئله:

برای پیاده سازی چند زبانه با جستجو در گوگل به این روش رسیدم که باید در دیتابیس یک جدول Language ایجاد کنم و حالا به ازای اطلاعات جداولی که نیاز به ترجمه دارن یک جدول اضافی ایجاد میشه که به ازای هر زبان یک row در اون ایجاد میشه. مثلا به ازای جدول Countrty که شامل فیلدهای CountryID , PhoneCode هست یک جدول Country_Translate هم دارم که شامل FK_LanguageID و FK_CountryID و Name هست. حالا تو بخشی از سیستم نیاز هست که کاربر اطلاعاتی رو وارد کنه که به صورت انتخابی از میان 3 یا چهار مورد هست، یعنی از داخل کومبو یک مورد رو انتخاب میکنه. مثلا کاربر باید تعیین کنه که هتل اینترنت دارد یا نه، اگر دارد رایگان است یا پولی و .... . همونطور که میبینید تو سیستم یه سری کمبو داریم که آیتماشون هم اکثرا ثابت و بدون تغییر هستن ولی برای پیاده سازی چند زبانه من راهی پیدا نکردم غیر از این که به همون روش که در مورد جدول Country توضیح دادم برای هر کدوم از این کمبو ها 2 تا جدول ایجاد کنم که با توجه به این که این کمبوها کم هم نیستن (حدود 10 - 15 تا ) آیا روش بهینه که بشه پیاده سازی کرد وجود دارد؟

pezhvakco
سه شنبه 15 تیر 1395, 19:56 عصر
141272
پیشنهاد روش دوم

saeidgab
چهارشنبه 16 تیر 1395, 16:00 عصر
مرسی از پاسخ، در واقع روش دوم همون کاریه که من انجام میدم. فقط جداول دیتابیسم تا الان حدود 70 تا شده که اگر سیستم چند زبانه نبود حدود 30 تا جدول میشد ، و همین تعداد زیاد جدولا منو به شک انداخت که شاید یه جای کارم اشتباه باشه . به هر حال ممنون.

pswin.pooya
پنج شنبه 17 تیر 1395, 17:49 عصر
برخی از کشورها چند زبان و چند واحد پولی دارن. بحث چند زبانه همیشه یه مشکل بزرگ بوده و راه حل کاملی براش وجود نداره. تنها راه حل درست تفکیک کامل لایه لاجیک از لایه ارایه هست. بعد از اون سعی نکنید که خود داده رو به چند زبان نگهداری کنید. این روش هم زیاد پیشنهاد نمی شه. واقعا زمانی اینکار رو بکنید که پتانسیلش وجود داشته باشه.