আমি মার্টিন পোস্ট করা উত্তর সুপারিশ।
তবে আপনার প্রশ্নগুলি খুব জটিল হওয়ার বিষয়ে আপনি উদ্বিগ্ন বলে মনে করছেন:
প্রতিটি টেবিলের জন্য স্থানীয় টেবিল তৈরি করতে ডিজাইন তৈরি করা হচ্ছে এবং জটিল জিজ্ঞাসা করা হচ্ছে ...
সুতরাং আপনি ভাবতে পারেন, এটি এর মতো সহজ প্রশ্নগুলি লেখার পরিবর্তে:
SELECT price, name, description FROM Products WHERE price < 100
... আপনার মতো প্রশ্নগুলি লিখতে হবে:
SELECT
p.price, pt.name, pt.description
FROM
Products p JOIN ProductTranslations pt
ON (p.id = pt.id AND pt.lang = "en")
WHERE
price < 100
খুব সুন্দর দৃষ্টিকোণ নয়।
তবে এটি ম্যানুয়ালি করার পরিবর্তে আপনার নিজের ডাটাবেস অ্যাক্সেস ক্লাসটি বিকাশ করা উচিত, যা এসকিউএলকে প্রাক-পার্স করে যা আপনার বিশেষ স্থানীয়করণের মার্কআপ রাখে এবং এটি আপনাকে সত্যিকারের এসকিউএলে রূপান্তর করে আপনাকে ডাটাবেসে প্রেরণ করতে হবে।
এই সিস্টেমটি ব্যবহার করা এ জাতীয় কিছু দেখতে পারে:
db.setLocale("en");
db.query("SELECT p.price, _(p.name), _(p.description)
FROM _(Products p) WHERE price < 100");
এবং আমি নিশ্চিত যে আপনি এটি আরও ভাল করতে পারেন।
কীটি হ'ল আপনার টেবিলগুলি এবং ক্ষেত্রগুলির নাম অভিন্ন পদ্ধতিতে।