首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用字符串的子集(即: Kanji字符)索引字符串

用字符串的子集(即: Kanji字符)索引字符串
EN

Database Administration用户
提问于 2016-12-24 20:29:31
回答 1查看 377关注 0票数 1

我在PostgreSQL中有一个数据库,用来制作一本日文->英语词典.我感兴趣的表格如下,粗体表示PK和斜体FK:

  • 条目(entry_id int,关键字varchar,读取varchar,意为varchar)
  • entries_kanji(kanji char,entry_id int),其中entry_id引用entries.entry_id

entries.keyword是一个包含几个kanji的字符串。对于这些kanji中的每一个,entries_kanji中都会有一个适当的行链接回条目。这使我能够快速查找其关键字包含特定kanji的所有条目,并通过计算此表上几个查询的交集,仅通过其kanji标识一个单词。

目前,我正在使用数据库外部的脚本来生成entries_kanji表,方法是迭代条目中的每一行,从每个关键字中提取kanji并将一行插入到entries_kanji中。虽然这样做有效,但每次将新条目添加到字典中时,都必须运行此脚本是不方便的。

我的问题是:是否有办法单独使用索引来实现上述目标?我知道PostgreSQL允许基于表达式创建索引,但我不知道如何使用它实现我前面描述的内容。还是PostgreSQL的其他特性允许我取消脚本呢?

EN

回答 1

Database Administration用户

发布于 2016-12-24 20:41:26

目前,我正在使用数据库外部的脚本来生成entries_kanji表,方法是迭代条目中的每一行,从每个关键字中提取kanji并将一行插入到entries_kanji中。虽然这样做有效,但每次将新条目添加到字典中时,都必须运行此脚本是不方便的。

您需要实际提供脚本或解释Kanji是什么,但听起来像是Unicode-日语特有的东西。我会找到一种在SQL中这样做的方法(如果您提供了脚本,这将是一个更简单的问题)。在您知道如何在SQL中执行此操作之后,您可以为其余的部分使用MATERIALIZED VIEW。每当父表发生更改时,都可以使用REFRESH MATERIALIZED VIEW与其父表保持同步。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/159101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档