我一直在研究如何在PHP中构建类似于FB的墙系统。
我们计划使用 ODM (Mandango,MongoDB)而不是常规的ORM(MySQL)来实现这一目标。有些朋友告诉我有关收件箱/发件箱系统的信息。
为什么?因为如果您关注用户会更简单,您只会关注他的“发件箱”
每次我将某些内容发布到我的墙上时,此消息将被复制到我的每个关注者(这将生成大量数据)。 但是当朋友评论我的帖子时呢。他要在哪个实体上评论我的帖子?我或他(因为内容重复)?
你怎么看? 你有没有想过这样的问题?你有什么答案吗? 感谢答案 0 :(得分:1)
这就是关于如何设置数据库的全部内容。我对MySql的经验有限,所以我的答案与此有关。在这种情况下,我至少会有这三个表:
-Users(具有与每个ID相关联的唯一ID)
- 消息:这包括“收件箱”和“发件箱”消息。您可以将它们全部放在一个表中的原因是因为如果您关注某人,它只会将那些具有(这是一列)“发起用户ID”的消息和(这可能是另一列)“接收用户” id“或某种类似的东西。你如何使用php或asp或者你有什么来处理数据。
-Comments:这包含所有帖子的所有评论,并包含与其相关的消息的唯一ID的列。
开发系统时要记住的一件事是,您永远不想复制数据。因此,当您发布到墙上时,您不希望在数据库中为所有关注您的人创建重复的消息,您希望php处理为您传播该信息。