03-03 - Rhythm's gonna get you
Closed this issue · 3 comments
Rhythm's gonna get you
For this project, we will model and create a database. We are starting a record
label company, and we a place to store our bands, albums, and eventually songs.
You are creating a console app that stores our information in a database.
Objectives
- Practice working with SQL
- Practice working with ORMs (EF Core)
Setup
Create a console that allows a user to store and manage the company's bands,
albums, and (eventually) songs.
Top Tips
Although in reality an album could be done by more than one band, our system
will just have an album involving one band. That is, an album belongs to one
band.
Explorer Mode
-
Create a database that stores
Albums
, andBands
. They should have the following properties, use your best judgment for types. (We will add foreign keys in the next step)-
Album
- Id
- Title
- IsExplicit
- ReleaseDate
-
Band
- Id
- Name
- CountryOfOrigin
- NumberOfMembers
- Website
- Style
- IsSigned
- ContactName
- ContactPhoneNumber
-
Add foreign keys to fulfill the following
- One Band has many Albums
-
Create an interface to let the user:
- Add a new band
- View all the bands
- Add an album for a band
- Let a band go (update isSigned to false)
- Resign a band (update isSigned to true)
- Prompt for a band name and view all their albums
- View all albums ordered by ReleaseDate
- View all bands that are signed
- View all bands that are not signed
-
Adventure Mode
-
Add the ability for an album to have many songs. NOTE a song will only belong to a single album. Even if the same-named song appears on different albums we'd have a second entry for it.
-
Song
- Id
- Title
- Lyrics
- Length
- Genre
-
-
Track the individual members of a band. Create a new table called
Musicians
and give it a many to many relationships with a Band -
Add the following queries
- View albums in a genre
- View all members of a band
Epic Mode
- Add another entity that you feel would benefit the system. Update your ERD,
tables and user interface to support it.
Additional Resources
Very nicely done! I don't have any major feedback here. Thanks for considering past feedback!