|
database
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Multilingual database designdatabases? Please comment on each of the following design practices for multilingual database design. Which solution do you recommend? 1. One column per string in a certain language in each table. "Create table title (id, en_string, fr_string)" 2. One row for each language. "Create table title(id, value, LanguageId(foreign key))" 3. One table for each language. "Create table en_title (id, en_string), Create table fr_title (id, fr_string)" 4. Delimiter-separated strings in each row. "Create table title (id, title)", "hello|salut|" 5. Separate databases for each language "Create database en_database", "Create database fr_database" · Regarding multilingual database design, any other practices/recommendations/experiences? Regards, Carl Depends on the size and req for the database. My general reaction:
1) possibly, but only if number of languages is low and youre certain you will not have to add more then one or two a year :) 2) possibly, depends on the size. I would test for the performance on this one and use it if its good enough 3) I would rather go with 1) 4) Hell no 5) dont MC "carolus" <carl90***@hotmail.com> wrote in message Does someone know anything about best practices designing multilingualnews:1134118388.538905.319910@g14g2000cwa.googlegroups.com... databases? Please comment on each of the following design practices for multilingual database design. Which solution do you recommend? 1. One column per string in a certain language in each table. "Create table title (id, en_string, fr_string)" 2. One row for each language. "Create table title(id, value, LanguageId(foreign key))" 3. One table for each language. "Create table en_title (id, en_string), Create table fr_title (id, fr_string)" 4. Delimiter-separated strings in each row. "Create table title (id, title)", "hello|salut|" 5. Separate databases for each language "Create database en_database", "Create database fr_database" · Regarding multilingual database design, any other practices/recommendations/experiences? Regards, Carl Option 2 provides best scalability, plus the parameterised language setting
enables two things: 1) one method of access for all language editions - all values are in a single column (one column => one name => static queries); 2) indexed views - create an indexed view for each LanguageId and let the query optimizer optimize! ML --- http://milambda.blogspot.com/ This isn't so much a question about multilingual design as it is about
database design in general. I would suggest option #2 with the LanguageID column. Option #1 presents an extendability and maintainability issue, becuase adding support for a new language means modifying the data structures and also the queries would have to be written to reference a different column depending on the language. The same goes for options #1 and #5 only worse, becuase you would have to perhaps resort to dynamic SQL when referecing alternate databases and tables. The problem with option #4 is that your SQL would be peppered with complex and repetitive programming or user defined functions for parsing the column values, and this would result in poorly optimized queries. "carolus" <carl90***@hotmail.com> wrote in message Does someone know anything about best practices designing multilingualnews:1134118388.538905.319910@g14g2000cwa.googlegroups.com... databases? Please comment on each of the following design practices for multilingual database design. Which solution do you recommend? 1. One column per string in a certain language in each table. "Create table title (id, en_string, fr_string)" 2. One row for each language. "Create table title(id, value, LanguageId(foreign key))" 3. One table for each language. "Create table en_title (id, en_string), Create table fr_title (id, fr_string)" 4. Delimiter-separated strings in each row. "Create table title (id, title)", "hello|salut|" 5. Separate databases for each language "Create database en_database", "Create database fr_database" · Regarding multilingual database design, any other practices/recommendations/experiences? Regards, Carl |
|||||||||||||||||||||||