我有一个应用程序,它使用CSV格式的信息填充文本文件。问题是,每个记录的列数应该是灵活的,并且不是恒定的。我试图在MySQL中实现相同的数据结构,以便从许多节点更快地读取和并行写入。
以下是从我的CSV文件
中提取的示例like|love|adore|admire
hate|dislike
revive|resurrect
info|information|pieces of information|data
shoot|snipe|kill|hunt
每条记录代表具有相同含义的词语。稍后,我使用该CSV文件获取单词的同义词。例如,我使用我的应用程序中的函数获取单词hate
的同义词dislike
,该函数解析csv文件并输出匹配的单词。
我有哪些选项可以使用相同的实现方法但使用MySQL?
答案 0 :(得分: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)
);
然后,获取字$ Y的所有同义词,其ID为$ Y:
SELECT w.id, w.word
FROM synonyms s
JOIN words w ON (s.synonym_id = w.id)
WHERE s.word_id = $Y;
这样你也可以在某些时候添加反义词。