Movie data model
In the course, Graph Data Modeling Fundamentals, you learned that the stakeholders of your application must agree upon the important use cases for the application and design the graph data model to optimize the key queries of the application.
For this course we will use this already-designed graph data model:

Here we see the node labels that will be created:
-
Person
-
Actor
-
Director
-
Movie
-
Genre
-
User
And we have the relationships:
-
ACTED_IN (with a role property)
-
DIRECTED (with role property)
-
RATED (with rating and timestamp properties)
-
IN_GENRE
Also notice that the nodes have a number of properties, along with the type of data that will be used for each property. It is important that you adhere to the property types defined in the data model.
Each node with a given label has a property that uniquely identifies the node.
-
Movie nodes use movieId.
-
Person nodes use tmdbId.
-
User nodes use userId.
-
Genre nodes use name.
In the next module, you will be loading data into an empty graph from the CSV files to conform to this data model.
Check your understanding
1. Relationship properties
Given the graph data model you will be using to load the CSV data, what relationships have properties?
-
✓ DIRECTED
-
✓ ACTED_IN
-
❏ IN_GENRE
-
✓ RATED
Hint
These three relationships will be created with properties per the graph data model.
Solution
These are the relationships in the graph data model that could have properties:
-
DIRECTED
-
ACTED_IN
-
RATED
2. Person nodes in the graph data model
A Person node in the graph can also have what labels?
-
❏ Genre
-
✓ Actor
-
✓ Director
-
❏ User
Hint
These nodes will have an ACTED_IN and/or DIRECTED relationship to Movie nodes.
Solution
A Person node, can also have these labels:
Actor
Director
Summary
In this lesson, you learned about the already-designed graph data model you will use for loading the CSV data in this course. In the next module, you will learn how to import CSV data with the Neo4j Data Importer.