I am designing an application and want to support Globalization (internationalization) in it. I am considering two approaches for its db design
1. have separate tables for each local with respective _ja etc. extention like done in pet store 1.1.2.
2. use the same tables with multiple rows each for specific locale.
Which approach is better and why?
thanks in advance
Use (1) if your application, always, installed to support only a single locale. Use (2) if your application support multiple locales in a single installation. Approach (2) with a column for locale is a better strategy - unless your application will never be installed to support more than one locale (in which case you should use configuration variable to store your locale).
I have 2y+ experience with i18n of J2EE(tm) applications and I can assure you the second approach is always better. Both your classes and the persistent store they do use to save their state should be structured such a way.