On reddit - you can post a 'question' to the community. Someone just posted "What is the worse design decision that you have made ?" My favorite comment on that thread so far is this one:
It started with an thought not unlike the following:
"Nah, flat-file should be fine."
It ended in tears. And a double digit load average.
Been there, seen that happen. My worst design decision I personally made was when I "invented" (see below for why I say "invented") the "funky data model" - better known as an EAV (entity-attribute-value). You know, the extensible model where all you need is four tables:
- objects
- attributes
- object_attributes (objects is 1:M with object_attributes)
- links (links objects to objects, an association table)
Man, I could store *anything* in there. And it was very secure - because trying to retrieve anything was really hard. Not only really hard, but really slow.
But the prototype/demo was awesome. It never worked in real life though.
I used the term "invent" above. Of course I didn't "invent" the EAV - it has existed as a concept for a long long time. But, I see it get re-invented in relational database applications over and over and over again. And every developer thinks for a short period of time "hey, this is so cool - I wonder why no one else has thought of this - they must not have thought of it or everyone would be doing it - I'll be famous".
And then they learn why not everyone is doing it :)