Hi, I'm working on InterCom for a long time and I think I finally get to the point I can propose a good db design I have read all feature requests and add some of my and this is what comes of it.
Features
conversation
single and group sender
single and multiple users as recipients
single and multiple groups as recipients
message types like normal, system, notification
MessageEntity
id
subject
text
conversationid
type
send
sender
sendAsGroup
recipientUsers collection
recipientGroups collection
messageUserData *collection
MessageUserData
messageid
userid
notified
seen
deleted
stored
label
Everything is based on current user so lets say we want to get messages that are sent to us:
We get all MessageEntities where conversationid is null("first message in conversation") my id is in recipientUsers or my groups are in recipient gropus AND in messageUserData has deleted set to date or true.
I believe this db design can be extended by label (onetoone) field in MessageUserData and separate labels table so users can add their own labels apart from default ones and mark a message with selected label.
There will be only 1.5x and 2x version no 1.4x
For upgrade I will use import it is easier for me to do it this way.
For classic look, I will try to mimic something like this https://adminlte.io/themes/AdminLTE/pages/mailbox/mailbox.html on plain bootstrap
I have a lot of pieces done and basically only desing was the real problem.
If you have any ideas regarding this matter please comment.
Hi, I'm working on InterCom for a long time and I think I finally get to the point I can propose a good db design I have read all feature requests and add some of my and this is what comes of it. Features
MessageEntity
MessageUserData
Everything is based on current user so lets say we want to get messages that are sent to us: We get all MessageEntities where conversationid is null("first message in conversation") my id is in recipientUsers or my groups are in recipient gropus AND in messageUserData has deleted set to date or true.
I believe this db design can be extended by label (onetoone) field in MessageUserData and separate labels table so users can add their own labels apart from default ones and mark a message with selected label.
There will be only 1.5x and 2x version no 1.4x For upgrade I will use import it is easier for me to do it this way. For classic look, I will try to mimic something like this https://adminlte.io/themes/AdminLTE/pages/mailbox/mailbox.html on plain bootstrap
I have a lot of pieces done and basically only desing was the real problem. If you have any ideas regarding this matter please comment.