在MySQL中创建分类表

Dra*_*NET 9 mysql sql database hierarchy taxonomy

我正在创建一个植物数据库,其中的植物将按其分类法进行组织:

Life Domain Kingdom Phylum Class Order家族属

我正在考虑使用MySQL中管理分层数据这一文章提出的例子,但是它将上面的列表添加为表格中的记录....我不确定这是否是最好的事情,因为我会每个属有多个物种,每个家族有多个属,等等.你会建议什么是解决这个问题的最佳方法.提前致谢.

Ant*_*nte 12

我使用类似的数据,我分为两部分.在PostgreSQL语法中.

首先是分类结构(Family,Genus,Species,...):

CREATE TABLE taxonomic_units (
  id         serial        PRIMARY KEY,
  name       varchar(20)   NOT NULL,
  parent_id  integer       REFERENCES taxonomic_units(id)
);

1 | Life    | NULL
2 | Domain  | 1
...
7 | Family  | 6
8 | Genus   | 7
9 | Species | 8
Run Code Online (Sandbox Code Playgroud)

其次是植物数据的描述和存储:

CREATE TABLE taxons (
  id                 serial        PRIMARY KEY,
  suptaxon_id        integer       REFERENCES taxons(id),
  taxonomic_unit_id  integer       NOT NULL REFERENCES taxonomic_units(id),
  name               varchar(50)   NOT NULL,
  authority          varchar(50)
);

100 | NULL | 8 | Ocimum    | L.
101 | 100  | 9 | basilicum | L.
102 | 100  | 9 | gratissim | L.
Run Code Online (Sandbox Code Playgroud)

  • 这可能是我在SO上见过的最好的答案。期。 (2认同)