0

我有一个应用程序,它使用 CSV 格式的信息填充文本文件。问题是,每条记录的列数应该是灵活的,并且不是恒定的。我正在尝试在 MySQL 中实现相同的数据结构,以便从许多节点更快地读取和并行写入。

这是从我的 CSV 文件中获取的示例

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

每条记录代表具有相同含义的单词。稍后,我使用该 CSV 文件获得了单词的同义词。例如,我得到了单词的同义词,该单词在我的应用程序hatedislike使用一个函数来解析 csv 文件并输出匹配的单词。

除了使用 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 回答