0

私の問題は、たくさんの「オブジェクト」があることです。これらのオブジェクトは、最大 3 単語の単語のリストを持つことができますが、何も持たないこともできます。mysqlの場合、私はすでに各オブジェクトごとに行を持っており、単語を組み込む方法を見つけようとしています。これが私のアプローチです:

1: 単語ごとに 3 つの余分な列があります。ただし、これにより、3 つの単語がない場合、空白の冗長なセルが残ります。

2: 各単語がその列にスペースで区切られた 1 つの列があります。これにより、単語がない場合に冗長なセルが残り、追加の処理も必要になります

3: 対応するオブジェクトを参照する参照番号を持つ単語を保持する別のテーブルを作成します。これには追加のクエリが必要ですが、私の意見では冗長性が最も低くなります。

アドバイス?

4

2 に答える 2

0

整合性を確保するために、 words (id_word,word)という名前のテーブルと、innodb テーブル タイプを持つ corse のobject_words (id_object,id_word)という名前の他のテーブルを持つ番号 #3

于 2012-05-25T12:49:54.140 に答える
0

私は常に追加のテーブルを使用して#3に行きます. これにより、将来、すべてのオブジェクトに対して SQL を使用して「単語」検索を実行する必要がある場合、または構造を変更して単語を追加したり単語を減らしたりする必要がある場合でも、問題は発生しません。さらに、これらの追加のクエリは、通常、RDBMS サーバーにとって非常に負担が少なくなります。また、他のすべてのオプションも、PHP からの何らかの処理を必要とし (それがコーディング言語であると仮定)、CPU サイクルをいくらか消費します。しかし、#3 は将来よく拡張されるため、#3 を使用することをお勧めします。

于 2012-05-25T12:40:21.050 に答える