@ Adrian Klaver: Oh, so you're suggesting I make separate tables for kingdoms, classes and on down to species. I'll research foreign keys and see what I can come up with. I hope I can make separate tables for mammal species, bird species, fish species, etc. There are just so many species - especially fish - the spreadsheets I use to organize them are just about maxed out as it is.
The suggestion is simply to have 7 tables:
CREATE TABLE kingdom( kingdom_id serial PRIMARY KEY , kingdom_name text NOT NULL , ... ); CREATE TABLE phylum( phylum_id serial PRIMARY KEY , kingdom_id int NOT NULL REFERENCES kingdom , ... ); CREATE TABLE class( ... );
and so-on.
Seems to me that if life boils down to four attributes one would have a single table with those four attributes on the particular life form. Now, the four attributes could be ids into definitional tables but I suspect the querying will be done string/name so why complicate the lookups: make the names a foreign key in the defs if necessary.
Personally I think the recursive structure is the way to go.