sql >> Databasteknik >  >> RDS >> Mysql

MySQL operativ hierarkisk data

Det jag använder är en annan design, och även om den har begränsningar, om du orkar med dem, är den väldigt enkel och väldigt effektiv.

Här är ett exempel på taxonomiskt fågelträd så hierarkin är Klass/Ordning/Familj/Släkte/Art - art är den lägsta nivån, 1 rad =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 ''
);

och exemplet på data:

+---------+---------+---------+----------+---------+-------------------------------+
| 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                   |

Detta är bra eftersom du på detta sätt utför alla nödvändiga operationer på ett mycket enkelt sätt, så länge som kategorierna inte ändrar sin nivå i trädet.



  1. Proaktiva SQL Server Health Checks, Del 5:Väntestatistik

  2. Hur man tar bort lagrad procedur i MySQL

  3. mysql + importera en fil med mellanslag i kolumnrubriken + hur man hanterar

  4. Frågan behåller statistikstatus under lång tid i Google Cloud SQL (MySQL 5.5)