Реализирах го с две колони. Тук го опростявам малко, защото трябваше да запазя името на маркера в отделно поле/таблица, защото трябваше да го локализирам за различни езици:
- маркировка
- пътека
Вижте тези редове например:
tag path
--- ----
database database/
mysql database/mysql/
mysql4 database/mysql/mysql4/
mysql4-1 database/mysql/mysql4-1/
oracle database/oracle/
sqlserver database/sqlserver/
sqlserver2005 database/sqlserver/sqlserver2005/
sqlserver2005 database/sqlserver/sqlserver2008/
и др.
Използване на like
оператор в полето за път, можете лесно да получите всички необходими редове с етикети:
SELECT * FROM tags WHERE path LIKE 'database/%'
Има някои подробности за внедряването, като например, когато преместите възел в йерархията, трябва да промените и всички деца и т.н., но не е трудно.
Също така се уверете, че дължината на вашия път е достатъчно дълга - в моя случай използвах не името на маркера за пътя, а друго поле, за да съм сигурен, че няма да получа твърде дълги пътища.