我还没有在网上找到我正在寻找的教程。 我所追求的功能是一个简单的消息发送和检索功能。
我知道我需要2个控制器,一个用于处理消息发送,另一个用于检索。
这种类型的系统如何在数据库端运行。我是否为收件箱创建了一个新表,因此所有邮件都在那里发送,并带有相应的发件人和收件人ID?
答案 0 :(得分:1)
一个简单的2个表就足够了:
TblUsers (UserId, UserName, Password, FirstName, LastName)
TblMessages (FromUser [fk to tblUsers], ToUser [fk to tblUsers], Title, Content, SentDate, ReadDate, DeletedDate)
请注意,DeletedDate仅在您要为邮件启用回收站时才相关。
如果要启用向多个用户发送相同的消息,则需要一个不同的架构:
TblMessags(MessageId, FromUser [fk to tblUsers], Title, Content, SentDate)
TblRecipients(MessageId [fk to messages], RecipientId [fk to users], ReadDate, DeletedDate)
答案 1 :(得分:0)
由于您需要表结构的帮助而不需要实现本身,因此可能存在以下情况:
请记住,users
表和messages
表取决于您要定义要存储在其中的属性。最初的方法可能是:
CREATE TABLE users(userID int, username VARCHAR(30));
CREATE TABLE messages(messageID int, senderID int, recipientID int, title VARCHAR(50), content VARCHAR(1000));
然后可以使用以下查询来获取特定用户的收件箱:
SELECT *
FROM messages
WHERE messages.recipientID=XXXX
XXXX
当然是您想要的用户收件箱的用户ID。这只会得到消息数据。如果您想显示发件人数据,可以将上一个查询的结果与senderID
或recipientID
的查询结合起来。
表结构可以根据您预期的查询类型进行更改。我认为这应该足以作为初始方法,然后您可以分析是否需要对请求很多的数据进行分组或索引。
答案 2 :(得分:0)
我是否为收件箱创建了一个新表格,因此所有邮件都会以相应的发件人和收件人ID发送到那里?
基本上,是的。
我意识到你想要用一个发送者和一个接收者构建一个简单的消息表。如果您想扩展消息系统,也可以为一个发件人和多个接收者设计表。
让我们制作用户表。
User
----
User ID
User Name
...
和消息表。
Message
-------
Message ID
Message Sent Time Stamp
Message Text
用户可以发送多条消息并接收多条消息。所以,我们建立一个联结表。
MessageUser
-----------
Message ID
User ID
Sender / Receiver Flag
...
主键是(消息ID,用户ID)。您还将拥有一个唯一索引(用户ID,消息ID)。主键允许您向用户发送消息。唯一索引允许您为用户构建以前的消息列表。