When working with relational databases, the join tables are sometimes treated as second class citizens. If they are lucky, they’ll get some additional fields, but are often just placeholder tables connecting your main object tables together. It leads you to think about objects first, and relationships second. With graphs, you will want to switch up your thinking. You want to start thinking about how things are connected. Think about the different ways things are connected. Two people can be friends, co-workers, and neighbors all at the same time.

If you’ve ever been crazy enough to go back to school after your bachelor’s degree, you know all about research papers, journals, and citations. So what kind of relationships can we find here? Papers are rarely authored alone. Having multiple authors means you can create a graph of co-authors. Which students and scientists work together on papers, and which should work together. Scientific research builds upon the work of others, and previous work can be used to build a graph of citations. Keywords in the abstracts or extracted from the papers can be used to build a graph of similar content.

What about a social network like Twitter? How about a Follower graph, a Reply graph, a Mention graph, a Co-Listed graph, a HashTag graph, a Co-Location graph, a Shared-URL graph? What about blogs? How about a Link graph, a Blogroll graph, a Tag graph?

You will be surprised by how connected your data is once you start exploring it. Don’t be afraid of your model. Just start with whatever you have and start adding nodes and relationships as they become apparent to you. Your model will probably evolve, so don’t waste your time second guessing yourself.

When folks ask me about modeling, I tell them to start with the questions they want to answer. It doesn’t end there however. Once you’ve answered those questions, you’ll discover more. You’ll say, if I had this extra piece of data, I could ask and answer a ton new questions I didn’t think about before.

I’ll spend some time in the next few posts digging in a little deeper.

Tagged ,

3 thoughts on “Relationships

  1. Great!
    thinking about UMLifying it. perhaps like this:

  2. Noah says:

    Max, have you thought about writing a blog on visualizing data geospatially on something liek Google Maps? Not sure if that’d be the best option but any way to show data locationally with edges and relationships displayed would be really neat.

  3. […] 原文链接:Relationships […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: