Sorry for the late response. I don't have Internet access at home, so I
only post from the library or a WiFi cafe.

Anyway, where do I begin?

Regarding my "usage patterns," I use spreadsheets (Apple's Numbers program)
to organize data. I then save it as a CSV file and import it into a
database table. It would be very hard to break with that tradition, because
I don't know of any other way to organize my data.

On the other hand, I have a column (Rank) that identifies different
taxonomic levels (kingdom, class, etc.). So I can easily sort a table into
specific taxonomic levels and save one level at a time for a database table.

There is one problem, though. I can easily put all the vertebrate orders
and even families into a table. But genera might be harder, and species
probably won't work; there are simply too many. My spreadsheet program is
almost overwhelmed by fish species alone. The only solution would be if I
could import Mammals.csv, then import Birds.csv, Reptiles.csv, etc. But
that might be kind of tedious, especially if I have to make multiple
updates.

As for "attributes," I'll post my table's schema, with a description, next.

On Mon, Oct 26, 2015 at 10:44 AM, Adrian Klaver <adrian.kla...@aklaver.com>
wrote:

> On 10/26/2015 10:33 AM, Rob Sargent wrote:
>
>> On 10/26/2015 11:14 AM, Adrian Klaver wrote:
>>
>>> On 10/26/2015 08:32 AM, Rob Sargent wrote:
>>>
>>>> On 10/26/2015 09:22 AM, Adrian Klaver wrote:
>>>>
>>>>> On 10/26/2015 08:12 AM, Rob Sargent wrote:
>>>>>
>>>>>> On 10/26/2015 08:43 AM, Jim Nasby wrote:
>>>>>>
>>>>>>> On 10/25/15 8:10 PM, David Blomstrom wrote:
>>>>>>>
>>>>>>>> @ 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.
>>>>>>
>>>>>
>>>>> Out of curiosity what are those four attributes? It would have made
>>>>> memorizing all those organisms a lot easier when I was in school:)
>>>>>
>>>>> kingdom phylum class genus as attributes in species table.  Talk about
>>>> your "natural key".  The hibernate boys would love it :)
>>>>
>>>
>>> Well in this classification system it would need to be:
>>>
>>> kingdom phylum class order family genus
>>>
>> Sorry, wasn't tracking carefully: 6 attributes
>>
>>>
>>> What makes it complicated is that these are just the slots. How
>>> organisms are slotted depends on attributes and there are a lot of
>>> them. This means there is a constant rearrangement in the slotting.
>>>
>>> But at the end of the day, is it not the intent to have those six filled
>> per species. Is your point that maintenance would be problematic?
>> Agreed.  Certainly not just a single pointer redirect in a recursive
>> structure.  All depends on OPs usage patterns.  I personally love 'with
>> recursion' but it's more complicated than for example
>>      select count(*) from species where class = '<some class name>'
>> if, and only if, all 6 attributes are always there.  Which highlights
>> your caveat "In this classification system".
>>
>
> This is the current system. If you want to be historically complete then
> you have to take into account the ways things where classified before.
> Granted this is running in the crawl, walk , run sequence but it cannot be
> entirely ignored. Then there  are the more detailed versions of the above:
>
>
> http://www.itis.gov/servlet/SingleRpt/SingleRpt?search_topic=TSN&search_value=584927
>
> It comes done to what view of taxonomy you want to support.
>
>
>> 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.
>>>>>>
>>>>>
>>>>> Jtbc, I'm not advocating this structure but it may suit the OP's usage
>>>> patterns.
>>>>
>>>>
>>>>
>>>
>>>
>>
>
> --
> Adrian Klaver
> adrian.kla...@aklaver.com
>
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>



-- 
David Blomstrom
Writer & Web Designer (Mac, M$ & Linux)
www.geobop.org

Reply via email to