Does anybody know where to learn database programming? I have a thing at work that would work so well with a database but I don't know where to begin learning the mental model or interface.
@acdw Do you mean using a database? Writing a database? What kind of database? What kind of programming have you done before?
@emacsen Using, writing, querying a database. Right now all the data is in a big Excel spreadsheet with tables and VBasic functions to query the data.
Basically, I work in a library. I build a list every month for the books we check out to local preschools. I have a table with all the books we have in our collection, and I have another table with all the checkouts I've done over time. Each month I generate a report that figures out what books we're going to check out next month, which is based on what books were previously checked out (I don't want to check the same book out two months in a row, for example).
I've thought since making this big Excel sheet that it seems like a good application for a database, but I don't know for sure.
I hope that answers your questions! Sorry for the wall of text. It's a complex problem I'm facing.
@acdw Here's what I'd do:
I don't know what language(s) you know but for the sake of discussion, let's say Python.
There are many online tutorials for Django which include some ORM layer. Learn that.
I did half-heartedly try this with Flask before, but maybe if it's more batteries-not-included, I should start with a more comprehensive solution.
You already know how to build databases: your Excel spreadsheet is one.
You might however be interested in one specific type of databases, which we call “relational databases”. If you have a science background then you could do worse than read Codd's seminal paper (https://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf).
If you want to go deeper you will have to study (and put up with the pedantic writing in) C. Date's “An introduction to database systems”. My copy's #ISBN is 9780201385908.
@61 thanks for the (to me) kind words regarding my spreadsheet! I've been telling myself that, and that as a spreadsheet it's more portable, but I also want to try writing something as a learning exercise. I'll check out those papers!