Draw an ER diagram for below mentioned database use case Make sure to indicate primary keys, cardinality constraints, weak entities (if any), and participation constraints.
I need support with this Computer Science question so I can learn better.
The goal of the project is develop ERD for database system application of an eCommerce social-network system called xyz where users can explore information about books/music/software, rate your purchase, identify purchase price and see ratings of their friends.
Below you will find the ERD deliverable requirements.
- You will work with book/music/media information, user information, ratings of books, and users’ social network
- Each book has an id, title, publication date, publisher, ISBN, functional category, page count, price (publisher), and product description
- There are 3 categories of book: fiction, non-fiction, and specialty
- There are 2 categories of music: digital and media-based
- An author can write one or more books.
- A musician can be a solo artist, part of a group, or both
- An author can also be associated with one or more publishers.
- A musician/group/act can be associated with one or more music houses
- An author’s book can have one or more editions.
- A song and or album can have more than one version/edition (i.e. EP, LP, CD, DVD etc)
- A publisher can have many authors and many books.
- A record company can have many artists associated and many albums associated with it.
- A record company can also be the publishing company (i.e. self-publishing)
- Many ISBNs can also be associated with a given publisher but only one ISBN per form of medium (ie the ISBN is the PK no matter what).
- An author can write many books.
- An artist can write many songs, albums etc.
- UCOnline needs to keep track of user ratings for each item sold in the online store (e.g., 1-5 and 1 for ‘Dislike’, to 5, for ‘Awesome!’).
- A particular user rates a particular item at a given time.
- A user CANNOT rate the same multiple times unless there are multiple editions of the item. Each edition can be rated separately.
- Each user who submits a rating will be identified by a unique id and has a name, gender, age, and location. Nothing is anonymous.
There is also a social network between users. Users can send communication requests (i.e. instant messages/emails) to other users. Such requests can be accepted or ignored. Once accepted, the two users are considered ‘book buddies.’ If ignored, the user can send the request again. We want to add a store when the requests were sent (timestamp), the result of the requests and when the request was answered (timestamp).