0

私は今(MYSQLを使って)簡単なフラッシュカードで単語/言語を学ぶためのアプリケーションを作成しています。本当に頭痛の種になるのは、スキーマ(テーブル)の構造化方法です。本当にシンプルにする方法をたくさん考えていたので、このように構成していきました。

データベーススキーマ 画像へのリンク

私はすべての言語のテーブルを持っており、4つのフィールドがあります。値。たとえば、「犬」、品詞(名詞)、略語、スペル。私はすべての単語を「翻訳」(またはフラッシュカード)と呼ばれるテーブルに集め、すべてをまとめます。別の2つのテーブルがありますが、私はさまざまなフラッシュカードの保存に焦点を当てたいと思います。

この種のスキーマを使用すると、2つ以上の言語をサポートするフラッシュカードを、すべてを実行する必要なしに作成できます(翻訳のフィールドはnull可能です)。問題は、新しい言語が追加された場合、翻訳に別のテーブルと新しいフィールドを作成する必要があるということです。実際に悪いのか良いのかはわかりませんが、ここではこれよりも良いアプローチがあると思います。この情報が与えられた場合:

このデータベーススキーマをより良くする方法を誰かが知っていますか?

前もって感謝します!:)

4

1 に答える 1

1

設定に問題はありません。

私の場合は、言語テーブルを1つにまとめてから、そのテーブルにフィールドを追加します。このフィールドは、プリセット値に基づいたフィールドになります。利点は、誰かがデータベースに言語を追加したいということです。新しいテーブルを追加したり、新しいテーブルのプログラミングを追加したりする必要はありません。代わりに、ルックアップテーブルにエントリを追加するだけで済みます。

英語+フランス語+タガログ語+1つのテーブルへのドイツ語のテーブル:

vocab {idvaluepartofspeech略語スペル言語}

言語フィールドは、別のテーブルに基づいて入力されます。

言語{言語}

言語テーブルの値は次のようになります。フランス語英語タガログ語ドイツ語

後でスペイン語を勉強することにしたときは、それをリストに追加するだけです。

特定の言語を勉強するときは、次のようなSQLステートメントを使用します。

ここで、language = "French"

于 2013-10-25T05:30:39.283 に答える