我正在考虑如何实现数据库架构专用一对一用户消息(使用Laravel)。所有线程都只是一对一的,所以没有群组消息或多个参与者。最好的例子是约会网站,每个用户的消息线程由接收者代表。一对一的用户消息传递数据库架构
起初,我做了最简单的一个表格方法。像这样:
id,sender_id,recipient_id,body
这工作正常。然而,主要问题在于,当其他用户保留消息时,用户不能删除对话。
另一种方法是有三个表:消息,线程,参与者。 这与多人参与者一样,我仅限于两人。然后,如果用户删除一个线程,我可以简单地将他从此线程的参与者中删除。
现在,这是一个这种方法的问题。假设用户A向用户B发送消息,然后用户A删除线程(从线程参与者中删除)。用户B得到保留消息(他是参与者)。如果现在用户A再次向用户B发送消息会怎么样?这实际上会创建一个新线程,因为此线程会丢失旧线程。但消息实际上需要转到旧线程,因为两个用户之间总是只有一个线程。
我有点失落如何实现这一点。对于,只有一对一用户之间的消息传递,同时允许删除线程,你会建议什么数据库模式?
提前致谢!
听起来不错。这使得实现更简单! – tarokut