The “Wrong Answer” story from these tales from the interview brings back some memories… I’ve written this code (well, I got halfway through it before I realised precisely how stupid an idea it was), and I’ve counselled more than one developer against trying it again (always unsuccessfully, much to my chagrin and that of anyone who had to deal with it in the future, I’m sure).
The reason people do it is twofold:
- It’s more fun to write this sort of code than the sort that actually solves a real problem; and
- Schema manipulation in SQL databases sucks rocks. There’s usually limited (or at least painful) introspection capabilities, and manipulating the schema is annoying and usually is deeply balls, performance wise.
If the resources that have been spent building these databases-on-databases over the years were instead redirected into fixing problem 2, above, then it probably wouldn’t be a problem any more. On the other hand, problem 1 would still exist, for which the only solution is regular beatings.
Remember: always whack your programmers on the back of the head at least once a week. Even if you don’t know why, they do.