PHP でデータベース コンテンツを含む多言語設計を実装するにはどうすればよいですか?

WBOY
リリース: 2016-06-23 13:38:54
オリジナル
818 人が閲覧しました

これをやった人はいますか? (APPLE の公式 Web サイトのコンテンツの多言語切り替えと同様) 助けていただけますか、ありがとう


ディスカッションへの返信 (解決策)

みんなはどうやってそれを達成しましたか?フィールドを使用しますか?データベースを切り替えますか?スイッチテーブル?または、他の何か?

テーブル内のフィールドに単語を追加します。
例:
sc_title、en_title、tc_title

多言語インターフェイスまたは多言語コンテンツ?

テーブルのフィールドに単語を追加します。
例:
sc_title、en_title、tc_title



このアプローチは非常に信頼性が高くありません。言語を追加するときにフィールドを追加する必要がありますか? データベースを変更せずに言語を変更する方法

テーブル: res (id, .. .)
テーブル: res_lang (id, res_id, language, content...)

言語を追加するにはテーブルを追加する必要がありますか?

テーブルを追加するということはデータベースを変更することを意味するのではありませんか?


データベースを変更せずに言語を変更する方法

テーブル: res (id, ...)
テーブル: res_lang (id, res_id, language, content...)

テーブルを追加する必要がありますか言語を追加するには

テーブルを追加するということはデータベースを変更することを意味するのではありませんか?


データベースを変更せずに言語を変更する方法
テーブル: res (id, ...)
テーブル: res_lang (id, res_id, language, content...)


この使用法では追加する必要はありません上記のテーブル
フィールドやタグを追加する必要はありません。次のようにテーブルをデザインするだけです

以前にこれを行いました:

CREATE TABLE `article` (  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,  `albumID` int(11) DEFAULT NULL,  `category` mediumint(8) unsigned NOT NULL DEFAULT '0',  `title` varchar(120) NOT NULL,  `uid` int(10) unsigned NOT NULL DEFAULT '0',   `description` mediumtext NOT NULL,  `content` text NOT NULL,   `puttime` int(10) unsigned NOT NULL DEFAULT '0',   `listorder` int(10) unsigned NOT NULL DEFAULT '999',   `lang` varchar(20) NOT NULL DEFAULT 'zh_cn',  PRIMARY KEY (`id`),  KEY `category` (`category`),  KEY `lang` (`lang`) ) ENGINE=MyISAM AUTO_INCREMENT=5961 DEFAULT CHARSET=utf8
ログイン後にコピー



lang フィールドは、さまざまな言語とすべての言語を識別するために使用されます。は、このテーブルに保存されます

フィールドを追加するか、テーブルを追加することで、異なる言語のコンテンツを簡単に関連付けることができます

レコードを使用して保存することを賢く考えている場合、結果はアクセス オーバーヘッドが増加するだけです

フィールドやテーブルを追加することで、異なる言語を簡単に関連付けることができます。コンテンツは相互に関連付けられています

レコードを使用して保存することを賢明に考えている場合、結果はアクセス オーバーヘッドが無駄に増加するだけです


このタイプのデータの 99% をキャッシュに保存する必要があります。このクエリではどのくらいのオーバーヘッドが増加する可能性がありますか?
インターフェイスが多言語になっているだけでしょうか?

ドイツ語インターフェースで日本の記事を読めるのは誰ですか?


フィールドやテーブルを追加することで、異なる言語のコンテンツを簡単に関連付けることができます
レコードを使用して保存するのが賢明だと思っている場合、結果はアクセス オーバーヘッドの無駄な増加にすぎません


99%このタイプのデータをキャッシュに保存する必要がある場合、このクエリにはどのくらいのオーバーヘッドが追加されますか?

インターフェースが多言語対応しているだけでしょうか?

ドイツ語インターフェースで日本の記事を読めるのは誰ですか?



フィールドやテーブルを追加すると、異なる言語のコンテンツを簡単に関連付けることができます
レコードと一緒に保存することが賢明であると考えている場合、結果はアクセス オーバーヘッドの無駄な増加にすぎません


このタイプのデータ99 % をキャッシュに保存する必要があります。このクエリではどのくらいのオーバーヘッドが追加されますか?

奇妙なことに、記事がキャッシュできないのですか?
具体的な解決策は製品の要件によって異なります

公開データをできる限り再利用します
たとえば、複数の言語でタイトルとコンテンツのみが必要で、画像が共有できる場合は、フィールドを分割します
ニュースの場合異なる言語で出版されているものはまったく異なるので、分けてください 独立した記録としてください
モデルが異なる場合は、テーブルの分割を検討してください

それでは、ここで統一して返信しますので、よろしくお願いします

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!