我在PostgreSQL中有一个数据库,用来制作一本日文->英语词典.我感兴趣的表格如下,粗体表示PK和斜体FK:
entries.keyword是一个包含几个kanji的字符串。对于这些kanji中的每一个,entries_kanji中都会有一个适当的行链接回条目。这使我能够快速查找其关键字包含特定kanji的所有条目,并通过计算此表上几个查询的交集,仅通过其kanji标识一个单词。
目前,我正在使用数据库外部的脚本来生成entries_kanji表,方法是迭代条目中的每一行,从每个关键字中提取kanji并将一行插入到entries_kanji中。虽然这样做有效,但每次将新条目添加到字典中时,都必须运行此脚本是不方便的。
我的问题是:是否有办法单独使用索引来实现上述目标?我知道PostgreSQL允许基于表达式创建索引,但我不知道如何使用它实现我前面描述的内容。还是PostgreSQL的其他特性允许我取消脚本呢?
发布于 2016-12-24 20:41:26
目前,我正在使用数据库外部的脚本来生成entries_kanji表,方法是迭代条目中的每一行,从每个关键字中提取kanji并将一行插入到entries_kanji中。虽然这样做有效,但每次将新条目添加到字典中时,都必须运行此脚本是不方便的。
您需要实际提供脚本或解释Kanji是什么,但听起来像是Unicode-日语特有的东西。我会找到一种在SQL中这样做的方法(如果您提供了脚本,这将是一个更简单的问题)。在您知道如何在SQL中执行此操作之后,您可以为其余的部分使用MATERIALIZED VIEW。每当父表发生更改时,都可以使用REFRESH MATERIALIZED VIEW与其父表保持同步。
https://dba.stackexchange.com/questions/159101
复制相似问题