I\'m looking for the best solution to implement messaging to multiple users within the system(Facebook-style).
I\'m came up with the following idea: where each Message
The schema should work just fine as long as there aren't too many recipients of the same message. I don't see how you could make it much smaller or more efficient.
The only performance problem I can see is that if you want to do broadcasting, that is, send the same message to a large group or, say, every user on the system. Sending such a message will be very slow (been there, done that). In that case, I would track the status of such global messages lazily, that is, create the status row for an individual user only after he has opened the message. But if you don't have such a feature planned, I'd say ignore this problem for now.