In a desperate effort to get this thread back on track (remember when it was a philosophical discussion of normalization? Way back when? Somewhere around post 50 and before?), I want to thank some people, and then I'm out of this thread, because this discussion has made for some
strange bedfellows, and if I don't back out the door, before I know it I'll be trying to wrangle a herd of 300 macros.
Pat, your comments
here opened my eyes as wide as dinner plates. Believe it or not, I HAD considered what would/will happen if my sups ask for, say, all components sent in a particular month. "Holy smokes" I thought, "I'll have to write 25 queries per month!" I had no idea, however, to the extent of just how out control it would all get. Thanks for the (extreme) wake up call. Come to think of it, every time you answer one of my silly posts, it's a wake up call. Who else around here has that feeling?
Ken, it will be a couple of days before I can try out
your suggestions, but I've bookmarked it and it makes sense. Kevin_S, your comments and pointers are appreciated as well. I'm not looking forward to putting it into action (users get spooked when you tell them "the database will be down for a little while" and/or "there are going to be some changes"), but I'm looking forward even less to any ramifications that would crop up from keeping the databases this way. Thanks to you.
And Len Boorman:
To Normalise when designing a Relational Database Application is not a discussion point.
It is a fact.
No offense taken, but sometimes us gunslingers have to do unpretty things. Sometimes we have to rob trains, rustle cattle, build insurance databases with hundreds of 20 records tables and 300+ macros, and sometimes our supervisors at our REEELLY BEEEG companies tell us "You WILL make it look like THIS" and the only way to do it is "flatten" a table, and then we do the unpretty things we have to do. THAT, friend, is a fact. The trick, I'm finding out a little more every year (and I'm young yet), is knowing just what the hell you're getting into.
Ostracize me if you must, but I have a confession - I build
at least two unnormalized databases EVERY WEEK. My excuse: the vice-president gets spreadsheets, needs to see "the big picture" quickly, like, within an hour, and so I just import the spreadsheets to seperate tables, relate common fields, do some spot maintenance, run a query or three, use some template forms I have laying around, and send it over to him for perusal/analysis. On one screen, he can see a project and who's involved, or one person and all their projects, or totals and everything else that you can't get from spreadsheets. I know the database won't be used for more than a couple days, at most. It is an unpretty thing I have to do, it bugs me knowing that I'm breaking rules (not to the point of losing sleep, but it bugs me), but in the interests of time and knowing that we'll be getting a brand new set of spreadsheets in a day or two that I'll have to reimport, taking the time to normalize just doesn't take precedence.
The databases I maintain that are in general continued use, however, I want done right. So, thanks everyone for the help. (And with that, I'll leave Mile, Rich and The Stoat to their haranguing of Mike.)
(And, who else thinks Aleb deserves some dirty looks for airing this dirty laundry in the first place?)