I decided to get involved with league scheduling next, partially because it is a major component of the application as a whole for which nothing had been done and partially because this endeavor will take this document into some new territory.
Soon after I started musing about the optimal approach to take to the display and manipulation of schedules, I decided to use calendar months as the basic framework within which to view them. This seems to me to strike the right balance between specificity and a higher-level overview of the temporal distribution of the games. <grin> I know that characterizing the schedule in that fashion sounds somewhat pretentious, but it does illustrate what should be considered a basic lesson about how data can be represented. In this instance, the dates on which games are played will be represented within the familiar framework of a calendar month, which is really just a framework for looking at a chunk of time. The date on which a game is played, however, is a characteristic of the game, not the month, except in a very remote sense. My point here is that data is frequently represented in a manner in which aspects of the data are embedded in the representation. This can be relatively familiar, as in a calendar month, or it can be illuminating, or it can be the opposite of that, hiding patterns in a structure that obscures, intentionally or otherwise. At some point I will be discussing this in more detail as I start implementing routines to generate and chart summary statistics.
Just as with most elements of the system, the league schedule is something anyone should be able to view, but only certain individuals should be able to change. Unlike the records of the events in a game, however, a schedule has relatively few directly associated data elements. As a result, it seems to me at this point that it will be more possible to incorporate both public and maintenance capabilities in the same subroutines. Further, this is the type of action that some authenticated users will be able to perform, while others will not. The operative word here is, of course, authorization.
Those considerations, however, are somewhere downstream from where I am right now. First, I have to be able to draw a calendar for a given month, and display the games scheduled to be played within the context of that month. After incorporating the ability to readily change months, I will get into the higher levels of functionality required to modify the schedule.