当前位置:  开发笔记 > 编程语言 > 正文

如何在关系数据库中存储trie?

如何解决《如何在关系数据库中存储trie?》经验,为你挑选了1个好方法。

我有一个前缀trie.在关系数据库中表示此结构的推荐架构是什么?我需要子串匹配才能保持高效.



1> Bill Karwin..:

如何对物化路径设计?

CREATE TABLE trie (
  path VARCHAR() PRIMARY KEY,
  ...other attributes of a tree node...
);

要存储像"stackoverflow"这样的单词:

INSERT INTO trie (path) VALUES
  ('s'), ('st'), ('sta'), ('stac'), ('stack'),
  ('stacko'), ('stackov'), ('stackove'), ('stackover'),
  ('stackover'), ('stackoverf'), ('stackoverflo'),
  ('stackoverflow');

树中的物化路径是前缀字符序列本身.这也构成了主键.varchar列的大小是您要存储的最大trie深度.

我想不出比这更简单和直接的东西,它保留了有效的字符串存储和搜索.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有