ABCDEFGHIJKLMNOPQRSTUVWXYZAA
1
Data typeFieldTypeList?Notes
2
User
Represents each person who joins Facebook. Each user would obviously have many more fields than listed here (DOB, gender, etc.) but we're keeping it basic for illustration purposes.
3
UserFirst nametext
4
UserLast nametext
5
UserPictureimage
6
UserAbouttext
7
UserUniversityUniversity
Links the user to the university and ensures that you can easily get to the list of users at a particular university. For example, if you want to show a user a list of everyone at their school, you would just "Do a search for Users where University = Current User's University"
8
UserFriendsUseryes
Lists the users that this user is friends with. Note that this is somewhat redundant with the friendship object below but this field is useful a) to make it quicker to retrieve someone's list of friends b) to set up proper privacy rules
9
UserGroupsGroupyes
The groups that the user belongs to
10
UserApp owneryes/no
Controls whether the user has master access to data on the platform
11
User
Date email verified
date
When the email address of the user was verified (necessary to ensure only users from certain universities can join)
12
University
The universities that have been added to the system. When a student attempt to register, we will make sure that their email address domain matches a university that has been added.
13
UniversityNametext
14
UniversityDomaintext
The field that we will use to match students' domains to the universities that have been added to the system.
15
Post
Posts created on someone's wall (own or someone else's)
16
PostTexttextText of the post
17
PostImageimage
Image attached to the post (if included)
18
PostUserUser
The user whose wall the post is created on. This could be the same user as the Creator of the post (if posting on their own wall) or a different user. Can also be blank if a group post.
19
PostGroupGroup
The group in which the post is created. Will be blank if the post is created on a user's wall.
20
Friend Request
Friend requests sent
21
Friend RequestSenderUser
The user who sends the request
22
Friend RequestReceiverUser
The user who receives the request
23
Friend RequestStatustext
Would start at "Pending" and then move to "Declined" or "Accepted"
24
Message Thread
25
Message ThreadUsersUseryes
A list that contains all of the Users who are part of the conversation. When messaging happens from a user to another user, this list would only have 2 users in it. Later on, when group messaging is introduced, this list would have more people in it.
26
Message ThreadMessagesMessageyes
The Messages that are part of the conversation
27
Message
28
MessageSenderUser
The User who created the message. Note that we created a different field for this than the standard built-in "Creator" field, so that we have more flexibility (like for creating messages through the API)
29
MessageMessagetext
The actual text of the message
30
MessageImageimage
Image attached to the message
31
MessageMessage ThreadMessage Thread
Links the message to the thread that it's part of. Note the two-way linkage, which is redundant but also ensure flexibility
32
Group
A group that has been created. Note that this assumes that there is no sort of an approval process that happens when joining a group. If there was an approval process, then additional objects/fields would be needed
33
GroupNametext
Name of the group
34
GroupMembersUseryes
List of group's members. Note the redundancy with the field on the user.
35
Like
Represents someone clicking the "like" button. In this version only posts can be liked but a separate object is needed to ensure that in the future we can easily add other types of things that can be liked.
36
LikeUserUser
37
LikePostPostThe liked post
38
Poke
Records someone "poking" someone else
39
PokePokerUser
The user who initiates the poke
40
PokePokeeUser
The user who receives the poke
41
Notification
Records a notification that occurs whenever there is something relevant to a user on the platform
42
NotificationReceiverUser
The recepient of the notification
43
NotificationTypetext
"Poke", "Like", "Post", or "Friend Request"
44
NotificationPokePoke
Connects the notification to one of the objects to which the notification pertains. Note that only one of these fields would be filled out at a time.
45
NotificationLikeLike
46
NotificationPostPost
47
NotificationFriend RequestFriend Request
48
NotificationDate vieweddate
When the receiver viewed the notification. Note that we opted for a date field instead of yes/no, so that we have richer information (not just whether the notification was viewed but when it was viewed)
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100