次の列(単語のリスト)を持つテーブルがあるとします。
word: varchar
contributor: integer (FK)
ここで、「単語」ごとに翻訳を作成したいとします。何が一番いいでしょうか?2番目のテーブルがありますか?
word: integer (FK)
translation: varchar
contributor: integer (FK)
lang: integer (FK)
またはすべて同じテーブルにありますか?
word: varchar
translation_for: integer (FK - to the same table)
contributor: integer (FK)
lang: integer (FK)
2つのシナリオを想定します。(1)翻訳された単語を翻訳元の単語と一緒にプルする必要がある場合、(2)翻訳された単語のみをプルする必要がある場合です。どちらのシナリオでも、「元の」単語をはるかに多く使用します(SELECTingとUPDATE / INSERTINGの両方)。
では、各シナリオ、または一般的に、どのアプローチが最適でしょうか?私は最初のアプローチに傾倒しています。それ以降、私の「デフォルト」のSELECTはlang列で修飾する必要がなくなります。どう思いますか?
ありがとう!