Over the past week or so, I've had the opportunity to help put together Game, which is both a daily Web site and weekly print publication devoted to summer little-league baseball and softball in Lawrence, Kan.
The Web site is pretty cool in that it's almost completely databased -- and shows the advantages of taking extra time to define and isolate relationships between data. For instance, in the system, a game is associated with two teams. Each team is associated with a coach and a league. A league has a set of rules, a player agreement and an association with cell-phone and/or e-mail rescheduling alerts. Games take place at playing fields, which optionally have associated 360° photo VR things.
Once I defined these core relationships and our two crack Web interns started entering leagues, teams and games into the system, automating the site was a piece of cake. For the list of playing fields, I told the system, "Show me all the playing fields, ordered alphabetically, and pull out the next few games for each one." Same for the list of leagues. A league detail page displays all the teams in that league and the league's full schedule. A team detail page displays the team's full schedule (but not its roster, for child-privacy reasons). A field detail page displays that field's schedule and information about the field. A game detail page displays information about that game -- the league, the teams, the place, the result, the date/time. All of this stuff is automated based on the core pieces of information entered by our Web producers and key local-sports-guru-Web-editor Levi Chronister.
My favorite part of the site is this: Because little-league games are so dependent on weather conditions, and because we conveniently have weathermen on staff who populate a database of forecasts for our weather site, Simon had the brilliant idea of cross-linking game detail pages with weather forecasts. So, if a game hasn't happened yet, the system checks our weather database for a forecast for that day and displays it. The beautiful thing about that is it's absolutely "free," because we were already compiling and storing that information, anyway. All it took was about 15 minutes of extra programming.