My recommendation for data modeling is Domain Driven Design by Eric Evans. It's emphatically not this kind of design, but is a very good book. Other than that, Eric Normand is coming out with what sounds like a good book about bottom-up design. The culture in Clojure is what taught me most about data modeling, you could do worse than listen to Rich Hickey or read Brave Clojure.