人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

DBに詳しい方に質問します。

複数の言語を使用する方々へ向けてサイトを作るとします。
例えば、英語と日本語を使ったサイトを作るとします。

[user table]
id
name
smoke id



[smoke table]
id
name

をつくり[user table]のsmoke idと[smoke table]のidを連結させました。

この場合、言語が日本語だけですとsmoke tableのnameに「禁煙」「喫煙」と追加すれば良いのですが、
英語やその他の言語も対応する場合どのような構成にするのが良いでしょうか?
japanese name, english name....として行くのが良いのでしょうか?

項目はsmokeだけではありませんし、言語も5言語以上対応するかもしれません。
DBを使用しない方が良ければそのアドバイスもいただければと思います。

またMySQLを使用する場合、text,varchar,charはどのように使い分ければ良いのでしょうか?
このようなデータの場合はこれを使うのが良いと言った感じでアドバイスいただければと思います。
上のような場合はtextよりcharを使うべきでしょうか?

●質問者: ganessa
●カテゴリ:ウェブ制作
✍キーワード:Char DB English MySQL name
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● JULY
●60ポイント ベストアンサー

固定のコンテンツで、Web サーバが Apache なら、「コンテントネゴシエーション」でブラウザから送られる対応言語の情報で切り替えられます。

コンテントネゴシエーション - Apache HTTP サーバ

...って、実際に試した事は無いんだけど(^^;、Apache に付いてくる HTML のマニュアルが、

index.html index.html.en index.html.fr index.html.ko.euc-kr
index.html.de index.html.es index.html.ja.euc-jp index.html.pt-br

といった具合に、ファイル名に言語(というか文字コードというか)を識別する名称が付いています。

で、データベース側ですが、例えば、これらの識別名称が入るカラムを追加しておく、というのはどうでしょうか?

id* lang* name* smoke_id*
1 ja はてな 1
1 en hatena 1
id* lang* name*
1 ja 禁煙
1 en No smoking
2 ja 喫煙
2 en Smoking

またMySQLを使用する場合、text,varchar,charはどのように使い分ければ良いのでしょうか?

MySQL :: MySQL 5.1 リファレンスマニュアル :: 10.4 文字列タイプ

上記ページにまとめがありますが、簡単に言うと、

  1. 最初から長さが分かっているような、例えば、商品コードのようなものは char
  2. 長さはまちまちだが、一連の文章ような長さではない、例えば、メールアドレスや URL のような物は varchar
  3. 文章のような長さ、例えば、はてなの質問や回答の文章は text

という使い分けで、検索時のパフォーマンスがこの順序、というのが、ざっくりした違いです。

◎質問者からの返答

おー。なるほど。

とても解りやすかったです。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ