I continue to push on in hopes of achieving enlightenment ....
Reconsidering my original design, I think I've missed the mark on a couple things:
- Although an enclosure can have multiple types on landscaping (including none), it can only have one of each class of landscaping. In other words, you can have a fence and a grate, but not two fences.
- It seems to me repairs are really related to the type landscaping -- it makes no sense to, say, "fix the fence" if there's no fence.
I've attached a diagram with an updated design. Table explosion!
I guess the original design wasn't as off as I thought, but I hesitate to pull everything back into the original enclosure table for a couple reasons:
- If we happen upon a new class of landscaping, the table needs to be modified to accommodate it. To me this raises a "not normalized" flag. I suppose you could argue it should also raise the "inadequate data analysis" flag -- my current design still requires some upheaval to add a new class of landscaping, but it seems to me that I've isolated where the change happens. I do struggle at times with the question of "is this a repeating pattern?" vs "have we really analyzed this thoroughly enough for all possible cases?"
- It doesn't enforce the relationship between landscaping and repairs. Although now I wonder how hard I've made it to answer the question, "what are all the repairs that need to be done?"
Suggestions, comments, criticisms much desired and appreciated!