Design an ER diagram with a drawing tool or neatly by hand. Briefly note and justify assumptions
Question:
Design an ER diagram with a drawing tool or neatly by hand. Briefly note and justify assumptions you are making about the problem domain.
In your system, there are two classes of users, registered (logged in) users and visitors. Most of the features are geared towards registered users, who have signed up with your site and provided some information such as name, (approximate) age, city of residence, and maybe a short profile. Once signed up, registered users should also be able to search and browse for music, listen to music, rate music (say, from 1 to 5 stars), write reviews of music, and maybe declare them- selves fans of a particular artist. Visitors should be able to search and browse for, and listen to music, but cannot use any of the other features. Thus, your system also has to store information about the music such as the name of the song, the album, the name of the artist, the genre (say, Jazz, Classic, Blues, ..), maybe the year of the release, and also an embeddable URL that can be used to play the song.
In addition to the above features, registered users should also be able to interact via social networks. Two users are friends if they both agree to the friendship; thus, one person asks to be friends and the other can then choose to accept or not. A user can also follow another user, which means that certain content generated by the other user is automatically sent to the followers. Note that friendship is mutual, while following is unilateral (as in Twitter). There are two main types of content that users can contribute to the system: ratings, and reviews. A rating is just a score between one and five stars that a user can assign to a song or album. A review is a (shorter or longer) piece of text (maybe modeled as a varchar or clob), that discusses/reviews a particular song or album.
The entire state of this system should be stored in the relational database that you will design. You may assume that all the song data (titles, artists, song URLs etc.) is supplied and updated by the company running the system When a user visits the site the next time, appropriate queries against the content and current social structure are run to select new content that needs to be displayed in their feed. You should think about and decide whether all content is public, or if a user can restrict content (profile, reviews, ratings) to be only visible to friends and/or followers. Note that although users are shown con- tent from their friends and users they follow in their feed, they may search or browse to find new content.
Modern Systems Analysis And Design
ISBN: 9780134204925
8th Edition
Authors: Joseph Valacich, Joey George