sql >> Database >  >> RDS >> Mysql

MySQL operationele hiërarchische gegevens

Wat ik gebruik is een ander ontwerp, en hoewel het beperkingen heeft, als je ze kunt verdragen, is het heel eenvoudig en zeer efficiënt.

Hier is een voorbeeld van een taxonomische boom van vogels, dus de hiërarchie is Klasse/Orde/Familie/Genus/Soort - soort is het laagste niveau, 1 rij =1 soort:

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 ''
);

en het voorbeeld van de gegevens:

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

Dit is geweldig omdat u op deze manier alle benodigde bewerkingen op een zeer gemakkelijke manier kunt uitvoeren, zolang de categorieën niet van niveau in de boomstructuur veranderen.



  1. Uw Time-Series-database schalen - Hoe TimescaleDB eenvoudig te schalen?

  2. Kan een invoegbewerking een andere DDL-bewerking laten wachten?

  3. hoe een niet-gedefinieerde variabele te repareren:medewerkers in domPDF in Laravel

  4. Hoe DataFrame naar de postgres-tabel te schrijven?