Francesco Bonizzi
Francesco Bonizzi

Reputation: 5302

Create database, what's the right charset for my purpose

I have just a little information about MySql. I just need to create a database to store some score of a videogame, taken from all over the world. (The game will be in every available store, also Chinese etc.)

I'm worried about the charset. Db schema's will be similar to (pseudocode):

leaderboard("PhoneId" int primary key, name varchar(50), score smallint);

What will happen if a chinese guy will put his score with a name with that characters? Should I specify something into db creation script?

create database if not exists "test_db";

create table if not exists "leaderboard" (
    "phoneid" integer unsigned NOT NULL,
    "name" varchar(20) NOT NULL, -- Gestione errori per questo
    "score" smallint unsigned NOT NULL default 0,
    "timestamp" timestamp NOT NULL default CURRENT_TIMESTAMP,
    PRIMARY KEY  ("phoneid")
 );

Upvotes: 0

Views: 64

Answers (1)

Neels
Neels

Reputation: 2543

UTF8 is your obvious choice.

For details on UTF8 and MySQL integration, you can go through the Tutorial pages:

http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-utf8.html

http://dev.mysql.com/doc/refman/5.0/en/charset-unicode.html

There are certain things that needs to be kept in mind while using the UTF8 charset in any database. For example, To save space with UTF-8, use VARCHAR instead of CHAR. Otherwise, MySQL must reserve three bytes for each character in a CHAR CHARACTER SET utf8 column because that is the maximum possible length.

Similarly you should analyze other performance constraints and design your database.

Upvotes: 1

Related Questions