Understanding the data model

One of the key benefits of using dependency-management-data is that under the hood, you have access to the SQLite database that stores the dependency data.

Although you can interact with the database via the GraphQL API, one of the key selling points of using dependency-management-data is that the database's interface is treated as a first-class citizen, and a key part of the product offering.

However, the database has a fair bit of data in it, and it may be daunting to understand where to start with or how to JOIN tables to perform some common actions.

ℹ This page is a work in progress

It's recommended to have the database schema documentation open while reading through this, which provides more in-depth information about tables and columns, as well as indicating where there may be "foreign keys".

Overview

Before reading on, it's recommended to read project's design decisions which will give a bit more insight into why the database model is the way it is, in particular:

For the most part, querying data from the database relies on the use of the Repository Key.

As you read through the database schema documentation you will notice that there are a few types of database table: