$30
Homework 1
Forum
Please create an ER Diagram for a simple forum based on the following description and
write a report to justify your design.
A Forum is a website for users to discuss and exchange ideas. Each user has one unique
profile including name, gender, profile picture and date of birth. A user can be either a normal
user or an administrator. If a normal user is promoted to an administrator, the most recent date
of promotion should be recorded.
In the forum, a normal user can post a thread with text content and multiple pictures. Pictures
are stored on a remote server, and the database only needs to store the addresses of pictures.
The user can also choose to add some tags to the thread. Each tag has a unique tag name and
can be shared by multiple threads.
For each thread a user posts, any user can reply to it with text content and at most one picture.
One reply is created by one user and it can only be associated with one thread. Only threads
can be replied (replies, pictures or any other elements cannot be replied).
A user can also like or super like threads or replies. A thread or a reply can also be liked or
super liked by multiple users.
Besides threads that a normal user can post, an administrator can post an announcement,
which is an advanced thread, with text content, multiple pictures and at most one video. Videos
are also stored on a remote server and the database only needs to store addresses of the
videos. Like a regular thread, an announcement can also have some tags, be liked or super
liked and all users can reply to the announcement.
To simplify, we assume one picture or one video can only appear in either one thread or in one
reply.
Feel free to make additional assumptions if they are not stated in the description (for example,
attributes of entities). You also should be able to analyze the trade-offs of your design decisions.
The total number of points for this homework is 6. The submission MUST be a pdf file named
[Student First Name]_[Student Last Name]_HW1.pdf (wrong file name will not be graded)
that includes:
The ER Diagram for Forum(3 points). This could be a generated figure from any ER tool (we
recommend Visio 2016 and an online tool https://www.lucidchart.com). Hand-drawn diagrams
will be penalized by -1 point. For Viterbi students, Visio can be downloaded from
https://viterbiit.usc.edu/microsoft-imagine-downloads/
A report where you describe and justify your design choices (3 points). Some suggestions are:
Why is the relationship between A and B 1:1, 1:N or M:N? How bridge tables work in
your design? How did you decide whether a relationship is strong or weak?
Are there any optional/multi-valued attributes in your design? If yes, why?
What are the attributes of the defined entities that you may have, and why do/don’t you
include that in the ERD?
Could some design choices be different, and what are the trade-offs between your
designs with others?
If you have any general questions about the homework, please post your questions on HW1
discussion on USC DEN course forum. Before asking, please check to see whether similar
questions were asked and answered. Thank you!
Students can submit the assignment to USC DEN. Just go to the course MY TOOLS
Assignments Homework 1. The deadline is firm, only submissions that make it to the system will
be graded. I t is irrelevant if you submit your work at 11:59 PM according to your clock, the
system will stop accepting submissions at 11:59 PM according to the clock on DEN (Dropbox)
server. You will not be able to submit your homework after the deadline. Also please
expect the heavy network traffic around the deadline and network delay won’t be treated as a
valid reason for late submission. The system accepts multiple submissions and only the most
recent submission will be graded. Therefore, we advise you to make the initial submission at
least a day before the deadline and overwrite it with a better version or more complete
submission after you have it. Makeup data and have fun with this!