Before starting this current project, I was debating whether to implement the database connectivity natively, or to use a database abstraction library. In the end, figuring that since there won't be any need to use another database in the future, I chose to implement the application through a native connection, seeing as there would be no more need to implement database abstraction.
The other night, during a late coding session here at the office, it dawned on me that I couldn't work on this project at home if I ever needed to, because I didn't implement database abstraction.
(Not that I would ever take my work home, but still, I'd like to have my options open to me.)
Everything's going well enough. I had ample time for planning the project that I've been able to place all my database queries in nifty little functions in an include file, instead of the quick n' dirty mish-mash that had always been the case with past projects, which required much less turnaround.
I considered making all of it object-oriented too, but decided against it. I was afraid that a computer science teacher would poke me in the eye with a pencil for just randomly adding methods to my class instead of taking the time to design it.