I did a crash course in Drupal development in early 2009 when I was investigating using Drupal for a particular project I was working on for a client. In the end I decided Drupal wasn't appropriate and instead opted to build an application using C#/ASP.NET/VS2005, with which I already had some experience.
So this is the first Drupal custom module I'll have written that will (hopefully) see the light of day.
I particularly want the module to satisfy the requirements of holding results for the club's evening time trial series.
In fact a results module was the very first contribution I made to the Redhill CC website back in 2005, when the site was classic-ASP based. The ER model - always the most important part of any database application - remains the same now as then, and the entities are as follows: race, racer, result, competition (in our case 'Scratch' competition and 'Handicap' competition), score (i.e. points awarded in a particular competition).
I have considered the possibility of creating these entities using CCK, but having a node for each racer, result, etc. seems too 'heavyweight' to me. For example I have no interest in having a creation date and status field for each item of data; nor do I want to have to deal with access control for these entities. Maybe it's my limited experience with Drupal showing, but I'm not sure what is the orthodox way of handling the kind of 'lightweight' content being dealt with here.
Anyway I've decided to create my own tables: results_racer, results_result, etc. that are not keyed on nid.
I have spent a bit of time recently configuring a development environment, and that is: Ubuntu 9.10 (involved several upgrades to a 8.x installation that had been dormant on my laptop for over a year), LAMP (amazingly easily installed via Synaptic Package Manager), Eclipse PDT, XDebug, and MySQL Workbench (the upgrade to 9.10 was necessary in order to have the version of Workbench that includes developer tools).
