Real talk: y'all build databases like
shit. The database is your persistence layer, not your application layer. You give lip service to software engineering concepts like abstraction, DRY, SOLID, or whatever was popular right as you got out of college, but then you throw it all in the trash when you design databases. Your databases are
awful. Don't feel bad: literally everyone is doing it. But also do feel bad: you could be doing
so much better. It starts by realizing that software engineering principles apply to
everything, including (perhaps especially) the database layer. All other database-design advice is secondary to that.
Stop building shit-ass awful databases, please. You don't need to be reading about whether to pluralize your table names or not. You need to be reading about how to even begin to do even a moderately decent job. Go back to your favorite software engineering book and replace all mentions of "class" with "database table" and see if it works. It won't, but why it doesn't will be enormously instructive.