Hey everyone! I’m building a direct message system with elixir and phoenix and I can’t seem to workout how I should model the relationships.
I have 3 models: User, Conversation, Messages.
Users is a basic user type with e-mail, password, etc.
Messages have the content of the message and belong to a conversation.
Conversations keep track of both users involved in the conversation like so:
belongs_to :sender, App.User
belongs_to :recipient, App.User
I’m having a hard time figuring out how I can model this relationship for users. I’ve figured I can do 2 has_many relationships with the corresponding foreign keys of sender_id and recipient_id. I can then preload both associations; however, there must be a more efficient way to do it.
I’m new to phoenix so forgive me if there is an obvious solution! I’ve been scrambling through the Ecto docs for an answer.
Thanks!