sql >> Database teknologi >  >> RDS >> Mysql

Hierarkisk tagging i SQL

Jeg implementerede det ved hjælp af to kolonner. Jeg forenkler det her lidt, fordi jeg var nødt til at beholde tagnavnet i et separat felt/tabel, fordi jeg var nødt til at lokalisere det til forskellige sprog:

  • tag
  • sti

Se for eksempel på disse rækker:

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/

osv.

Brug af like operatør på stifeltet kan du nemt få alle nødvendige tag-rækker:

SELECT * FROM tags WHERE path LIKE 'database/%'
 

Der er nogle implementeringsdetaljer som når du flytter en node i hierarkiet, skal du også ændre alle børn osv., men det er ikke svært.

Sørg også for, at længden af ​​din sti er lang nok - i mit tilfælde brugte jeg ikke tagnavnet for stien, men et andet felt for at sikre, at jeg ikke får for lange stier.



  1. Hvordan forbinder man html-sider til mysql-databasen?

  2. SLET alle dublerede emner med få betingelser

  3. Wildfly og automatisk genoprette forbindelse til databasen

  4. Halloween-problemet – del 2