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).