1

私のMy-SQLデータベースには、articleテーブルがあります(article_id、article_name、およびhighlightの列があります(この質問で説明する必要があります))。「ハイライト」という名前のこの列は、記事のハイライトを定義します。この列を別の言語で保存する必要があります。

1) 1 つの方法は..同じテーブルで 4 つの列を使用します。Hightlight_en、Highlight_german、Highlight_french など。

2) もう 1 つの方法は、言語ごとに異なるハイライト テーブルを作成することです。

優れたデータベース設計に従って、どの方法を選択すべきかを提案してください。あなたのアイデアも大歓迎です。

もう1つ..MultiLingualデータを保存するために、Javaで追加のことを行う必要がありますか(ANY UTF-8設定)。私にお知らせください。

4

1 に答える 1

4

あなたが説明したこれらの方法のいずれかを使用しないことをお勧めします。代わりに、3 つの列を持つ単一のhighlightテーブルを作成します。

CREATE TABLE highlight 
(
  article_id INT NOT NULL,
  language VARCHAR(),
  highlight_text VARCHAR() CHARACTER SET utf8,
  PRIMARY KEY (article_id, language),
  FOREIGN KEY (article_id) REFERENCES articles (article_id)
)

各行は による記事にリンクしてarticle_idおり、言語バージョンと関連テキストが含まれています。これにより、必要な数の言語を追加することができます。また、記事に言語が 1 つ欠けていても問題ありません。表に表示されないだけです。また、必要に応じて、記事ごとにまったく異なる言語セットを使用することもできます。

値は次のようになります。

2  en  The English text for article 2
2  dr  The French text for article 2
2  de  The German text for article 2
3  en  The English text for article 3
3  dr  The French text for article 3
3  de  The German text for article 3
3  sw  Oh wait, article 3 also needed Swahili text!
于 2012-04-15T17:32:28.087 に答える