Sample data models for NoSQL Workbench
The home page for the modeler and visualizer display a number of sample models that ship with the NoSQL Workbench. This section describes these models and their potential uses.
Topics
Employee data model
This data model is an introductory model. It represents an employee’s basic details such as a unique alias, first name, last name, designation, manager, and skills.
This data model depicts a few techniques such as handling complex attribute such as having more than one skill. This model is also an example of one-to-many relationship through the manager and their reporting employees that has been achieved by the secondary index DirectReports.
The access patterns facilitated by this data model are:
-
Retrieval of an employee record using the employee’s login alias, facilitated by a table called
Employee
. -
Search for employees by name, facilitated by the Employee table’s global secondary index called
Name
. -
Retrieval of all direct reports of a manager using the manager’s login alias, facilitated by the Employee table’s global secondary index called
DirectReports
.
Discussion forum data model
This data model represents a discussion forums. Using this model customers can engage with the developer community, ask questions, and respond to other customers' posts. Each AWS service has a dedicated forum. Anyone can start a new discussion thread by posting a message in a forum, and each thread receives any number of replies.
The access patterns facilitated by this data model are:
-
Retrieval of a forum record using the forum’s name, facilitated by a table called
Forum
. -
Retrieval of a specific thread or all threads for a forum, facilitated by a table called
Thread
. -
Search for replies using the posting user’s email address, facilitated by the Reply table’s global secondary index called
PostedBy-Message-Index
.
Music library data model
This data model represents a music library that has a large collection of songs and showcases its most downloaded songs in near-real time.
The access patterns facilitated by this data model are:
-
Retrieval of a song record, facilitated by a table called
Songs
. -
Retrieval of a specific download record or all download records for a song, facilitated by a table called
Songs
. -
Retrieval of a specific monthly download count record or all monthly download count records for a song, facilitated by a table called
Song
. -
Retrieval of all records (including song record, download records, and monthly download count records) for a song, facilitated by a table called
Songs
. -
Search for most downloaded songs, facilitated by the Songs table’s global secondary index called
DownloadsByMonth
.
Ski resort data model
This data model represents a ski resort that has a large collection of data for each ski lift collected daily.
The access patterns facilitated by this data model are:
-
Retrieval of all data for a given ski lift or overall resort, dynamic and static, facilitated by a table called
SkiLifts
. -
Retrieval of all dynamic data (including unique lift riders, snow coverage, avalanche danger, and lift status) for a ski lift or the overall resort on a specific date, facilitated by a table called
SkiLifts
. -
Retrieval of all static data (including if the lift is for experienced riders only, vertical feet the lift rises, and lift riding time) for a specific ski lift, facilitated by a table called
SkiLifts
. -
Retrieval of date of data recorded for a specific ski lift or the overall resort sorted by total unique riders, facilitated by the SkiLifts table's global secondary index called
SkiLiftsByRiders
.
Credit card offers data model
This data model is used by a Credit Card Offers Application.
A credit card provider produces offers over time. These offers include balance transfers without fees, increased credit limits, lower interest rates, cash back, and airline miles. After a customer accepts or declines these offers, the respective offer status is updated accordingly.
The access patterns facilitated by this data model are:
-
Retrieval of account records using
AccountId
, as facilitated by the main table. -
Retrieval of all the accounts with few projected items, as facilitated by the secondary index
AccountIndex
. -
Retrieval of accounts and all the offer records associated with those accounts by using
AccountId
, as facilitated by the main table. -
Retrieval of accounts and specific offer records associated with those accounts by using
AccountId
andOfferId
, as facilitated by the main table. -
Retrieval of all
ACCEPTED/DECLINED
offer records of specificOfferType
associated with accounts usingAccountId
,OfferType
, andStatus
, as facilitated by the secondary indexGSI1
. -
Retrieval of offers and associated offer item records using
OfferId
, as facilitated by the main table.
Bookmarks data model
This data model is used store bookmarks for customers.
A customer can have many bookmarks and a bookmark can belong to many customers. This data model represents a many-to-many relationship.
The access patterns facilitated by this data model are:
-
A single query by
customerId
can now return customer data as well as bookmarks. -
A query
ByEmail
index returns customer data by email address. Note that bookmarks are not retrieved by this index. -
A query
ByUrl
index gets bookmarks data by URL. Note that we have customerId as the sort key for the index because the same URL can be bookmarked by multiple customers. -
A query
ByCustomerFolder
index gets bookmarks by folder for each customer.