Trees, as we use them in computing, come in a variety of flavors (bidirectional, unidirectional, with/without sibling links, etc).
One of the frustrations of using trees, e.g. in directory structures, is that the proper placement of data depends on proper, unique (distinct) classification of data when it's placed in the structure.
In many (most?) systems, this means that the data must either appear in multiple instances (redundancy) or that some kind of linking system must exist so that the data can "appear" in multiple places while existing only once.
One way of thinking about solutions to this is the RelationalModel, wherein data only ever exists once, but can have attributes or references that allow it to be selected in multiple contexts.
Another is interlocking trees, rather like the BanyanTree, so that a particular "TreeView" of data can expose a single data item in multiple branches.
Oddly, the only way I've ever made this actually work (TreeView interface with multiple views) is in ... yes ... a RelationalModel.
I want to see the data relationships as a tree, but the only way I can maintain any NormalForm integrity is to make the underlying structure a relational dataset.
Am I alone in this, or have others found themselves modeling similar things?
Background data on the actual tree:
Picture:
Excerpted fromwww.ecoworld.org/Trees/EcoWorld_Trees_Banyan.cfm ( BrokenLink EditHint )
A single mature Banyan Tree will have many trunks and support roots which gives the appearance of a forest of separate trees. A single tree can spread to cover well over an acre (.5 hectares), the largest, in Sri Lanka, covers just over two acres (1 hectares).
The Banyan Tree [...] seed sprouts and eventually the branches will send roots down to the ground. These supports will grow into trunks which in turn develop new branches and new arial roots and so on. [...]
Height: up to 100 feet (30.5 meters).
Lifespan: possibly over a thousand years although the age of the Banyan Tree is difficult to determine due to the fact that the original trunk is usually hidden by years of arial or support root growth.
Habitat and Range: The Banyan Tree grows in India and adjacent countries. It prefers areas of high humidity and moist soils.