Here is my suggestion, but like every other thing I post here I urge you to
take it with a grain of salt. Set up the following tables (described in
rough terms, not in SQL):

topic_index
        topic_id autonumber
        ... Whatever else you need to keep track of that identifies a topic

topic_detail
        topic_id long integer primary index
        topic_language indexed (perhaps)
        parent_topic_id indexed
        topic_language_text (utf-8, collate utf8_unicode_ci)
        ... Whatever else you need that is specific to this language / topic
combo

Now, whenever you add a topic you make an entry for a new topic, you make a
record in topic_index that identifies the topic uniquely. Make corresponding
entries in topic_detail using the topic_id that was just assigned to
topic_index's topic_id: there will be one such record for each language.

Now you can locate the topic itself in the topic_index table and quickly
pull all of the corresponding records for the different languages from
topic_detail. You can also easily find all topics that have entries in a
particular language, or that do not have entries in a particular language,
etc.




Regards,

Jerry Schwartz
Global Information Incorporated
195 Farmington Ave.
Farmington, CT 06032

860.674.8796 / FAX: 860.674.8341


> -----Original Message-----
> From: Zembower, Kevin [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, October 10, 2006 9:36 AM
> To: mysql@lists.mysql.com
> Subject: Advice on multilingual databases?
>
> I'd like some advice on setting up databases that contain entries for
> the same item in more than one language. For instance, here's what I
> currently do for a table that contains the same topics translated into
> English and Arabic:
> CREATE TABLE `TOPIC` (
>   `TopicID` int(11) NOT NULL auto_increment,
>   `Topic-en` text NOT NULL,
>   `Topic-ar` text character set utf8 collate utf8_unicode_ci NOT NULL,
>   `ParentTopicID` int(11) NOT NULL default '0',
>   PRIMARY KEY  (`TopicID`)
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Topics for text-based
> hierarchies' AUTO_INCREMENT=76 ;
>
> In this table, 'Topic-ar' is the Arabic translation of the English
> 'Topic-en.' If this were required to also be in Spanish and
> French, I'd
> add columns for 'Topic-es' and 'Topic-fr' similar to 'Topic-en' above.
>
> I'm wondering if there are any other ways to store and access
> multilingual data. Can anyone suggest other ways they've
> dealt with this
> task, and the pros and cons of their approach compared to mine?
>
> Thank you in advance for your advice and suggestions.
>
> -Kevin
>
> Kevin Zembower
> Internet Services Group manager
> Center for Communication Programs
> Bloomberg School of Public Health
> Johns Hopkins University
> 111 Market Place, Suite 310
> Baltimore, Maryland  21202
> 410-659-6139
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:
> http://lists.mysql.com/[EMAIL PROTECTED]
>
>




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to