

Ask HN: Where to find database design techniques? - notduncansmith

What are some good resources (blogs, courses, books, etc) for someone who&#x27;d like to implement a database?  I have some ideas that I think would make for a very usable database, but I&#x27;m far from an expert in databases or low-level programming and it would be more of a learning exercise than anything.
======
gee_totes
What do you mean by implement a database? Do you mean and design and program
your own?

If that's the case, a good resource would be to look at the developer guides
for popular open source databases, such as the one for PostgreSQL[0], which
will give a guide to how those databases are put together.

[0][http://www.postgresql.org/docs/9.4/static/internals.html](http://www.postgresql.org/docs/9.4/static/internals.html)

~~~
notduncansmith
Yes, that's exactly what I mean! Thanks for the suggestion, I'll have a look
at that link and dive into a few others.

------
spacemanmatt
Based on the breadth of your question I have some design platitudes to offer,
as you go into this.

* Think about how you want to read the data. This should inform how you design the storage.

* Understand concepts before you shortcut them. For example, synthetic keys are great, but be sure you know what the real primary key is for the data. NoSQL storage can be fast but you might pay in storage size or other flexibilities.

* Find sources of truth and use them to validate your learning. Build your intuition from fundamentals.

* Start fielding newbie questions on the topic. Appoint yourself expert-in-training.

* Learn PostgreSQL and participate in online discussion about it. This might be the most fertile OSS community I have found, pretty much ever. Highly recommended.

------
bradhe
All the literature I've read tends to be highly academic and out dated. Few
people cover modern nosql concepts (.please someone correct me if I am missing
something). Your best bet is to read the papers backing the current industry
standards.

------
dman
Let me know if you want to have a chat about this. Ive been tinkering with
something related.

