First Sub
First Sub
First Submission
Conceptual Modeling
L.EIC012 Databases
Group 1407:
Cláudia Mesquita (up202206173)
Pedro Camargo (up202102365)
Pedro Meireles (up202206180)
User
The User class is central to the application and has as attributes a username,
an email, a password, a birth date, a join date, a subscription type (free or
premium), and a country. Premium users have different types of
subscriptions (like student or family). This type of user has to pay the
membership via card or PayPal.
A user can add another user as a friend, and import friends from Facebook.
A user can create playlists, follow artists and add songs to playlists.
Song
The Song class has as attributes a name and a duration. Each song belongs
to an album, a genre, and has lyrics attached to it. A song can potentially
involve multiple artists. Users can also interact with songs through playlists.
Artist
The Artist class has as attributes a name, a debut year, a bio, and the artist is
verified or not. An artist contributes to songs, either individually or
collaboratively, and creates albums. An artist can do concerts, which have a
date, a location and a ticket price related to it. Artists can also sell their own
merchandise through the service, which includes products like CDs, vinyls
and shirts.
Album
The Album class has as attributes a name and the year it was released. Each
album is created by an artist and contains multiple songs, which are
numbered.
Playlist
The Playlist class has as attributes a name, the username of the person who
created it, and the date it was created in. Users can create a custom playlist,
which consists of multiple songs. Each playlist belongs to one user, and it may
span several genres, artists, and albums.
A playlist name must be unique, a user is not allowed to have two playlists
with the same name.
Genre
The Genre class has only a name as an attribute. Each song belongs to a
single genre, but a genre can contain many songs.
Initial Concept Model
Generative AI Integration
ChatGPT
> We provided the AI with a screenshot of our initial UML and asked for
feedback and for ways to improve it.
1. Listening History:
2. Playlist-Song Relationship:
4. Cardinality Clarification:
6. Lyrics Entity:
- The Lyrics entity only has a single attribute (text). You could add
more detail such as language or author to make it more useful,
or you might want to embed this as an attribute within the Song
entity instead of having it as a separate table.
- Other Considerations: