2017-07-04 20 views
1

現在、中国語とスペイン語のみの言語アプリを作成しています。データベースに言語辞書を保存しています

現在、自分で作成した辞書をDBに保存せずに単にJSONとしてロードしていますが、私には定義を行うにはCEDICT for Chineseのような完全なダウンロード可能な辞書があります。つまり、このファイルの長さは115k行で、1行に6列あります。

私はスペイン語でこれを行う必要があります。

注:

  • MySQLのDB
  • Laravel ORM(PHP)

言われていること、このデータを格納するための最良の方法は何ですか?

私は別のテーブルとしてdictionary_zh,dictionary_esと仮定していますが、辞書テーブルに各辞書を格納して、localeの列を追加してそれに基づいてクエリを格納することもできます。 This SO answerは、1mのレコードがテーブルの処理に「あまりにも多く」ないと述べています。テーブルのインデックス方法を定義するだけです。


Btw、ダウンロード可能なスペイン語 - 英語の辞書は誰でもおすすめですか?


:私は辞書をダウンロードして、私は単純に、特定の文字を渡すことによって、それを翻訳しています、私はCSV

Traditional Simplified Pinyin Meaning  Level Quest 
佟    佟  Tong2 surname Tong 1  2 
... 

に読み込むことができるものにそれをカットアップしていますこの場合はとなり、意味をつかみます。

+0

辞書を別々にしておくと、変更内容を更新する必要があります。更新はデータを更新するときに後で行います。 '$ dictionaryObj-> translate($ term)'のように、すべての辞書に対して同じ方法でプログラムされたインターフェースを持っています。これはあなたが翻訳する簡単な方法を持つようになっています。 翻訳の仕組みについて詳しくお知りになりたい場合は、フィードバックをお寄せください。 –

+0

@VladimirGhetau上記参照 – Growler

答えて

1

ディクショナリ(下の図のDictionaryタイプ)がその翻訳をどのように操作するかを知る必要はなく、ロケールに応じて単語の定義を取り出す方法を抽象化するために、各辞書を別のテーブルに格納します。これは、APIを使用して変換する辞書など、DBに存在しない辞書がある場合に便利です。

UML

方法translate()を(あなたのケースChineseDictionary又はSpanishDictionaryで)Dictionaryのタイプごとに異なる方法で実装されています。

データ管理の観点から見たこのアプローチのもう1つの利点は、新しいバージョンの辞書がリリースされたときにデータに多くの操作を行う必要がなくなることです。

関連する問題