sql >> Databáze >  >> RDS >> Mysql

MySQL provozní hierarchická data

To, co používám, je jiný design, a přestože má svá omezení, pokud je snesete, je to velmi jednoduché a velmi efektivní.

Zde je příklad taxonomického stromu ptáků, takže hierarchie je Třída/Řád/Čeď/Rod/Druh – druh je nejnižší úroveň, 1 řádek =1 druh:

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

a příklad dat:

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

To je skvělé, protože tímto způsobem provedete všechny potřebné operace velmi snadným způsobem, pokud kategorie nemění svou úroveň ve stromu.



  1. Nelze se připojit k serveru PostgreSQL:nelze se připojit k serveru:Oprávnění odepřeno

  2. SQLAlchemy ověřte připojení SSL

  3. Návrh datové struktury pro podporu replikace databáze

  4. Jaké jsou sqlite ekvivalenty INTERVAL a UTC_TIMESTAMP MySQL?