Những gì tôi sử dụng là một thiết kế khác, và mặc dù nó có những hạn chế, nếu bạn có thể chịu được chúng, nó rất đơn giản và rất hiệu quả.
Đây là một ví dụ về cây phân loại của các loài chim nên phân cấp là Lớp / Thứ tự / Họ / Chi / Loài - loài là cấp thấp nhất, 1 hàng =1 loài:
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 ''
);
và ví dụ về dữ liệu:
+---------+---------+---------+----------+---------+-------------------------------+
| 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 |
Điều này thật tuyệt vì bằng cách này bạn hoàn thành tất cả các thao tác cần thiết một cách rất dễ dàng, miễn là các danh mục không thay đổi cấp độ của chúng trong cây.