0

ずっと私はオブジェクト/要素が作成されているのと同じテーブルで翻訳を行ってきました。
たとえば、投稿を操作していて、投稿のタイトルに翻訳が必要な場合は、これを実行します- > post_title_en、、。 まあ、これはアプリケーションを維持するための非常にひどい方法です、あなたはあなたのコードの多くのものでハードコーディングしなければなりません。post_title_frpost_title_nl

だから私は今アプリケーションを書いています、そして私はこの悪い習慣から抜け出してこのように翻訳したいと思います。

テーブルフィールドに保持する必要のあるデータ長がわからない場合、どのように翻訳にアプローチしますか?

post_title私は通常魔女の翻訳をすることができ、魔女varchar(255)のようなものをpost_content通常はすることができますtext。そして、これらすべてをメインオブジェクトでどのように参照しますか?

どんなポインタでも大歓迎です。ありがとう。

4

2 に答える 2

1

残念ながら、MySQLデータベースはスケマティックです。しかし、あなたはトリックを行うことができます。

バージョン5.0.3以降、テーブルのROW_FORMATが "COMPACT"に設定されている場合、NULL値がデータベース内のスペースを使用することはありません。だから私たちは次のようなスキームを構築することができます

i18nスキーム

于 2012-11-07T06:35:30.987 に答える
0

次のようなもので構成される別のテーブルを作成します。

  • post_id(投稿テーブルの外部keからidフィールド)
  • field_type(タイトル、コンテンツなど)
  • language_id(言語)
  • value(文字列値)

したがって、言語に影響される値を投稿テーブルに入力しないでください(投稿の作成者、日付と時刻などは引き続き入力できます)。

于 2012-11-07T04:47:48.813 に答える