stone free or die: <steve> -
<CG> is a database onto itself - so they is a tremendous amount of flexibility as to how it handles things.
E.g. I never quite gone the hidden tournament layer <Daniel> used, and which remains to this day.
The common language which everybody uses, however, is PGN. And it's clearly my obsession.
I use SCID, which is essentially equivalent to <CG>. But again, one's interface doesn't matter much as the all must revolve around PGN.
So, everybody relied on an army of volunteers submitting PGN versions of games in the beginning up to today.
E.g. you want the latest tournament games - you either download the PGN from the tournament site or wait and download the "regularized" PGN of the games from TWIC.
Did I mention TWIC follows the 365 + CB + Z-base conventions?!
(Downloading from a tournament site is problematic, as conventions differ - TWIC sets a good standard)
So all the games come in as PGN. That's means they go into a giant bowl - which is either a toilet bowl, or a fruit bowl, depending on your perspective.
Let's ask - how does one group games in the bowl into a tournament?
<CG> does this via a tid, but let's just ask how an interface to a db would do it with a giant collection of games submitted by various volunteers.
I suggest via the triplet of PGN headers - (<Event>, <Site>, <EventDate>).
That would work if people understood the importance of the <EventDate> tag from the get-go - which they didn't.
(The noted historian <Tim Harding> even wrote an entire article on Chess Cafe (irrc) urging people to properly utilize the <EventDate> tag.)
Of course, nobody really appreciated teh <EvenDate> tag - so all the database interfaces were forced to adopt kludgy algorithms base on the <Date> tag of a game for grouping.
Let's acknowledge this by writing the triplet as (<Event>, <Site>, "<EventDate>" = (<Date>'s within a window of time)). We omit the quotes hereafter as being understood.
Now - when I say tournament that too is understood as "tournament". It really means a group of games such that a program can construct a meaningful crosstable (xtab).
Remember, all this is for a program to handle stuff "intelligently" - pre-AI. After AI we don't need the human overview - but back in 1990's when the PGN system was invented....
The essential organizing principle is the xtab. Look at any tournament report, and you will see a progression of xtabs - starting with a round of preliminary qualifiers, going to the main event, then heading into various playoffs.
And that is why the <Event> tag was "over-loaded" in the PGN.
You see the grouping in your database handler's tournament listing all start with the same stem, with a post-fix identifying the "Stage".
<CG> can respect this organization easily, while maintaining the PGN versions of the <Event> tag.
It merely has to do what everybody else is doing - i.e. <365chess>, <ChessBase>, <ChessTempo>, <TWIC>, etc.
All you need is a grouping on the <CG> tournament page - i.e. a superstructure framework.
Then you need to think of a superstructure on top of that - i.e. for WCC cycles (zonal -> interzonal -> WCC), or Grand Prixe cycles, etc.
The idea isn't to subdivide from below, but to organize from above.
Whew, OK, I've had my say. Hopefully I didn't just waste my breath, so to speak.
.