Re: Design-stage advice and opinions welcomed

From: Geoff Muldoon <geoff.muldoon_at_trap.gmail.com>
Date: Fri, 25 Sep 2015 13:15:15 +1000
Message-ID: <71dztw7u5cuf$.16wg337gsku0z.dlg_at_40tude.net>


On 24 Sep 2015 10:35:48 GMT, Derek Turner wrote:

> I'm thinking I need at least three tables:
>
> groups
> venues
> conveners
>
> Is that enough normalization? I realize it's not fully normalized as more
> than one group may meet on the first Tuesday of the month but a table of
> dates seems to be over-egging the pudding? nobody is going to change the
> name of a day to the week?! opinions?
Personally, I'd definitely add a fourth table "meetings" with columns of group/venue/day.

Why:

  1. You've used the phrase "typically" a future-proofing red flag alert that meetings might sometimes end up more than twice per month. And might you have virtual groups that don't even have formal physical meetings?
  2. Will you ever need to check for group/venue/day clashes? If so then cross checking that will include 1st meeting for one group against both 1st and 2nd for another will become complex.

And for the "day", I'd consider defining it as a multi-column attribute of week-of-month and day-of-week so that they can be stored as just integer values, being mindful of regional differences in definition of DoW #1 being either Sunday of Monday.

I note in a followup posting that you might code for Xmas, etc. whereas I'd possibly recommend creating a "holidays" table as well, to cater for one-off venue closures (4th July?) and the moveable beast that is Easter.

GM Received on Fri Sep 25 2015 - 05:15:15 CEST

Original text of this message