Как насчет Осуществленный Путь дизайн?
CREATE TABLE trie (
path VARCHAR(<maxdepth>) 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, который Вы хотите сохранить.
я не могу думать ни о чем более простом и простом, чем это, и оно сохраняет эффективное строковое устройство хранения данных и поиск.
Какой-либо из Ваших объектов имеет отношения с кем-либо другим? В противном случае то есть, не реляционный, хеш-таблица с сериализацией сделала бы это.