我正在创建一个laravel网站,其中包含消息传递功能。 我想考虑以下因素。
我想到了以下模式,但我认为它有太多重复,我正在寻找更好的东西。
messages table: ----------------- id title body
received_messages table: ------------------------ message_id receiver_id sender_id is_read
sent_messages table: ------------------------ message_id receiver_id sender_id
编辑:我想到了另一个方案:
messages table: ----------------- id title body
user_messages table: ----------------- message_id sender_id receiver_id sender_del // indicates that the sender deleted the message in their end receiver_del // indicates that the receiver deleted the message in their end read_at // timestamp null by default
当一方选择删除消息时,相应字段(sender_del,receiver_del)将为true,以便该消息不会显示给该人
使用先前的架构,只有双方都删除了消息,消息才会从数据库中删除
<?php
$user = auth()->user();
$received = $user->receivedMessages; // to get received messages
$sent = $user->sentMessages; // to get sent messages
任何建议的修改,使用哪种模式或全新的模式都受到欢迎。 谢谢。