[x] Contains bullet points after the table that state which foreign keys will reference to which table, or references to the associations which will be made
[x] foreign key and table name are lowercased, snake_cased and back_ticked
[ ] Correctly formatted
[x] schema is written in a table format
[x] the table's name are lowercased, snake_cased and back_ticked
[ ] the table header column names are bolded
[x] columns names are lowercased and snaked_cased and back_ticked
Comments
your messages table has two primary keys, and the parent_message_id has a 'text' datatype
if dms is going to be a joins table, it needs two foreign keys: the sender and the receiver. If it's going to be a table for messages, it should have a 'body'
reacts table has two primary keys
a separate message_properties table may not be necessary. The messages table can have more foreign keys pointing to the author and channel of each message. Consider making that change, as well as making the dms table into a joins table. Simplifying this will make it easier for you to implement.
For the fullstack project, we don't want to save arrays inside of a row of a table. For example, in dm's we don't want to have 2 or more members inside of the member_id row. We'd want separate rows for member1 and member2, so this could act as a joins table.
Another example along the same lines will be member_id in the channels table. Think about using a separate joins table for this one
Database Schema
back_ticked
back_ticked
back_ticked
Comments
parent_message_id
has a 'text' datatypedms
is going to be a joins table, it needs two foreign keys: the sender and the receiver. If it's going to be a table for messages, it should have a 'body'reacts
table has two primary keysmessage_properties
table may not be necessary. The messages table can have more foreign keys pointing to the author and channel of each message. Consider making that change, as well as making the dms table into a joins table. Simplifying this will make it easier for you to implement.