0

テキスト ファイルに CSV 形式の情報を入力するアプリケーションがあります。問題は、各レコードの列数を柔軟にする必要があり、定数ではないことです。同じデータ構造を実装しようとしていますが、多くのノードからの読み取りと並列書き込みを高速化するために MySQL を使用しています。

これは私のCSVファイルから取られたサンプルです

like|love|adore|admire
hate|dislike
revive|resurrect
info|information|pieces of information|data
shoot|snipe|kill|hunt

各レコードは、同じ意味を持つ単語を表します。後で、その CSV ファイルを使用して単語の同義語を取得します。たとえば、csv ファイルを解析して一致する単語を出力するアプリケーションで関数を使用してhateいる単語の同義語を取得します。dislike

MySQL を使用して同じ実装アプローチを行うには、どのようなオプションが必要ですか?

4

1 に答える 1

1

ここでは、多対多の関係を扱っています。思いつきのソリューションは次のようになります。

CREATE TABLE words (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    word VARCHAR(40) NOT NULL UNIQUE
);
CREATE TABLE synonyms (
    word_id INT UNSIGNED NOT NULL,
    synonym_id INT UNSIGNED NOT NULL
    PRIMARY KEY (word_id, synonym_id)
);

次に、ID が $Y の単語 $X の同義語をすべて取得するには、次のようにします。

SELECT w.id, w.word
FROM synonyms s
JOIN words w ON (s.synonym_id = w.id)
WHERE s.word_id = $Y;

このようにして、ある時点で反意語を追加することもできます.

于 2013-02-07T16:40:50.277 に答える