【问题标题】:Database Schema For Private Messages私人消息的数据库模式
【发布时间】:2012-11-21 05:32:27
【问题描述】:

我正在尝试在 Rails 中实现一个私人消息传递系统,我需要数据库设计方面的帮助。我已经阅读并提出了许多有效的替代方案,但我想知道是否有人知道这种最终可扩展的模式。感谢任何帮助或链接。

编辑: 数据库模式基本上有两件事

1.主题

2.消息

我正在考虑实现两个表

消息

主题文本

sender_id

reciever_id

有_许多文本

文字

内容文本

我不擅长数据库架构,但我很感谢在我学习时的帮助

【问题讨论】:

  • 为什么不在问题中添加您提出的替代方案?
  • 基本上它们中的大多数都很难解释,但更简单的基本上与stackoverflow.com/questions/6984750/… 非常相似。我还编辑了问题以更新消息传递系统将包含的内容。
  • 您在考虑您的功能以决定您的架构方面是否足够远?例如,是否需要这些功能中的任何一个:向多个收件人发送消息。已阅读消息。消息的日期。确认消息已被阅读。还有什么是'has_many texts'?
  • 当您使用它时,here's something interesting to read on 关于 Facebook 每月存储 1350 亿条消息的消息系统。
  • @AllInOne 消息系统将是非常基本的一个收件人、消息日期,当然还有消息。 “has_many texts”是您描述rails中两个表之间关系的方式。但是我确实忘记在文本表中添加“belongs_to messages”。

标签: mysql sql database-design database-schema


【解决方案1】:

一个非常简单直接的设计将是..

User
----------------
userID
userName
...
...
...

Messages
---------------
messageID
title
body

User_Messages
----------------
senderID (userID of sender)
recieverID (userID of reciever)
messageID (messageID of relative message)

这种设计也将简化您的搜索。您可以根据需要添加或删除列。

【讨论】:

  • 感谢您的帮助,我是 Rails 的菜鸟,所以请原谅很多问题,但是您将如何在模型中连接它?
  • 最初我问你是否知道如何在 ruby​​ on rails 中实现这个模式,但我注意到问题在数据库下。但是,您的回答正是我所需要的,我今天早上能够让它工作。谢谢
  • 别担心!很高兴我能帮上忙。
  • 您需要添加时间戳。否则新邮件将在收件箱中丢失
猜你喜欢
  • 1970-01-01
  • 2010-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-08
  • 2018-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多