[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mysql
Subject:    Re: Newbie: How to deal with multiple languages
From:       Graham Anderson <grahama () siren ! cc>
Date:       2004-11-30 3:24:06
Message-ID: 4ABCF2C8-427F-11D9-9992-000D9368CF4A () siren ! cc
[Download RAW message or body]

thanks for all the help

this will help as I think the client wants this project in >3 languages

On Nov 28, 2004, at 7:25 AM, Rhino wrote:

>
> ----- Original Message -----
> From: "Gleb Paharenko" <gleb.paharenko@ensita.net>
> To: <mysql@lists.mysql.com>
> Sent: Saturday, November 27, 2004 5:36 AM
> Subject: Re: Newbie: How to deal with multiple languages
>
>
>> Hello.
>>
>> You can find an answer here:
>>
>>   http://dev.mysql.com/doc/mysql/en/Charset.html
>>
>> MySQL supports column character sets on columns of some types
>> (char,varchar,text). Probably if I were you I would use Unicode
>> in my application.
>>
>> Graham Anderson <grahama@siren.cc> wrote:
>>> I have a mysql db that contains tables with multiple language fields
>>> for example...
>>> Artist_id   'PK'
>>> Artist_name
>>> Artist_pictLink
>>> Artist_purchaseLink
>>> Artist_bio_Spanish
>>> Artist_bio_English
>>> Artist_bio_German
>>>
>>> I have other tables with a similar layout...Is this needlessly
>>> complicated ?
>>> track_id   'PK'
>>> Artist_id   'FK'
>>> track_name_Spanish
>>> track_name_English
>>> track_name_German
>>> track_path
>>> track_versionTotal
>>> track_purchaseLink
>>> track_pictLink
>>>
>>> Is there a better way to deal with tables  that need multiple 
>>> language
>>> fields...like creating another Db for that language ?
>>>
>>> trying to get the design down before I end up with a huge headache...
>>>
> You *could* alter your design to do something like this:
>
> create table artist
> (artist_id [column type] not null,
> artist_name [column type] not null,
> artist_pictlink [column type],
> artist_purchaseLink [column type],
> artist_bio_code int,
> primary key (artist_id)
> foreign key artist_bio_code references artist_bio on delete restrict)
> Type=InnoDB;
>
> create table artist_bio
> (artist_bio_code int not null,
>  artist_bio_Spanish [column type],
>  artist_bio_English [column type],
>  artist_bio_German [column type],
>  primary key(artist_bio_code)) Type=InnoDB;
>
> You would then have to join to get the artist_bio information in the 
> desired
> language(s) but, of course, you wouldn't have to do the join unless you
> needed the bio. The dramatically smaller size of your artist table 
> could
> help your performance for those queries where you don't need the bio.
> Naturally, queries that need the bio will have a bit more work to do 
> to get
> the bio.
>
> Both designs lend themselves to supporting additional languages if that
> should become necessary. I think that is very important because I can 
> easily
> imagine having to increase the number of languages. I haven't done any 
> work
> with character sets in MySQL so I don't know if there would be any 
> advantage
> to having the foreign character data separated into their own tables 
> so that
> 'main' tables like 'Artist' would have only standard characters. You 
> should
> probably read the chapter on character sets that Gleb cited to try to 
> figure
> that out.
>
> Rhino
>
>
> -- 
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/mysql?unsub=grahama@siren.cc
>
>
graham anderson
310.402.3980


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=mysql@progressive-comp.com

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic