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

MySQL driftshierarkiske data

Det, jeg bruger, er et andet design, og selvom det har begrænsninger, er det meget enkelt og meget effektivt, hvis du kan bære dem.

Her er et eksempel på et taksonomisk fugletræ, så hierarkiet er Klasse/Orden/Familie/Slægt/Art - art er det laveste niveau, 1 række =1 art:

CREATE TABLE `taxons` (
  `TaxonId` smallint(6) NOT NULL default '0',
  `ClassId` smallint(6) default NULL,
  `OrderId` smallint(6) default NULL,
  `FamilyId` smallint(6) default NULL,
  `GenusId` smallint(6) default NULL,
  `Name` varchar(150) NOT NULL default ''
);
 

og eksemplet med dataene:

+---------+---------+---------+----------+---------+-------------------------------+ | TaxonId | ClassId | OrderId | FamilyId | GenusId | Name | +---------+---------+---------+----------+---------+-------------------------------+ | 254 | 0 | 0 | 0 | 0 | Aves | | 255 | 254 | 0 | 0 | 0 | Gaviiformes | | 256 | 254 | 255 | 0 | 0 | Gaviidae | | 257 | 254 | 255 | 256 | 0 | Gavia | | 258 | 254 | 255 | 256 | 257 | Gavia stellata | | 259 | 254 | 255 | 256 | 257 | Gavia arctica | | 260 | 254 | 255 | 256 | 257 | Gavia immer | | 261 | 254 | 255 | 256 | 257 | Gavia adamsii | | 262 | 254 | 0 | 0 | 0 | Podicipediformes | | 263 | 254 | 262 | 0 | 0 | Podicipedidae | | 264 | 254 | 262 | 263 | 0 | Tachybaptus |

Dette er fantastisk, fordi du på denne måde udfører alle de nødvendige operationer på en meget nem måde, så længe kategorierne ikke ændrer deres niveau i træet.



  1. ActiveRecord::StatementInvalid, PG::UndefinedTable-fejl, men genereret SQL virker

  2. Postgres Kontroller, om IP (inet) er i en liste over IP-områder

  3. PGLogical 1.1-pakker til PostgreSQL 9.6beta1

  4. Kunne ikke finde migreringsmetode:op