Query Planning ExperienceJuly 3rd, 2020
I was super fortunate to learn Database Design from Jason Lee and Dan Van Staal Duinen at iSTORM in 2005. Learning from them was way better than SQL class.
Beyond what I learned from them, I have really only added 2 major things. INNODB (We were using MYISAM @ iSTORM) and the JSON dataype.
As mentioned before, I love the JSON field in MySQL. Crazy rapid development when you store dynamic structures that don't need to be indexed.
And if you use JSON as fields for all this meta data, then indexes are really most of the rest of the design.
If you do use JSON, it makes data pretty stupid. Just stuff in, stuff out, some indexed, some not.
You can really do a lot of damage with these values. But the data is not where most of the attention goes anyway. So the reduction isn't much wrt overall implementation time. Ie: it takes 1 second to add a field to a database such as "full_self_driving". It takes far more effort to make flipping that 0 to a 1 worth $9K CAD.
Software Developer always striving to be better. Learn from others' mistakes, learn by doing, fail fast, maximize productivity, and really think hard about good defaults. Computer developers have the power to add an entire infinite dimension with a single Int (or maybe BigInt). The least we can do with that power is be creative.