@amy I'm designing it from scratch, and as part of that I'm thinking about the fact that there are probably places where I'm going to need to divide data up because their state changes asynchronously. That means I need to have some fundamental understanding of the best way to structure those tables, how to index them, the best way to write queries, etc. etc.
I know how to do the actual breaking up of everything and how to create indices in my code, but I'm realizing that I don't understand database systems and design well enough to make smart decisions there, you know?
@amy It's not really time-dependent, I probably didn't express that well. It's more like I suspect that parts of the record might need to be updated or expanded separately in future. It's about podcasts, and my suspicion is that if a podcast feed changes, we need a mechanism by which to resolve multiple feed URLs to the same feed entity, which means storing feed URLs separately and referencing the parent record.
So it's not time so much as it is wanting to have a central resource entity then splitting up any information I know to be variable into separate records. I just want to make sure I'm A) not overcomplicating the design and B) future-proofing it in a scaleable and extensible way. I know enough to realize there might be an issue there, but not enough to know how to design the structure properly, you know?
@cda I have a very similar, but very different challenge. Building an info security database I want to know where my IT systems are and (for example) how many vulnerabilities they have. This sounds easy on day one - have a table with columns for IP, Hostname, and vulnerability count. But those things change regularly. Next week it may change IP and have less vulnerabilities, and the following week, it will have more.
How do I store all of that so I can graph vulnerabilities over time?
@cda Please let me jump into this better database schema design train
I have a copy of https://theartofpostgresql.com and it's kinda nice. It has a chapter on data modeling, but I wish something that explores it deeper with more examples.
@cda possibly just to help narrow down what type of book you're looking for:
Based on the conversations here, you're probably looking specifically for data modelling knowledge. Specifically online transaction processing (OLTP) compared to online analytical processing (OLAP) modelling. I.E.: you're modelling for a running web application rather than for big data analytics.
It might be an idea to take a look at Database Normalisation (https://en.wikipedia.org/wiki/Database_normalization) and see if this seems close to what you're trying to learn about.
Otherwise you might get buried in books around performance or tweaking specific database systems which is another whole topic (query performance, index design, table engines, etc).