Sql 如何管理像Facebook这样的用户通知设置?
我正在尝试设置一个类似于Facebook的用户偏好,比如说,对于每个消息频道或社区,你可以设置可以发送给你的通知。此外,还有一些全局首选项,其中设置不属于某个频道或社区。设计数据库来保存这些信息的最佳方法是什么?据我所知,以下是一些常见的方法:Sql 如何管理像Facebook这样的用户通知设置?,sql,database,database-design,software-design,Sql,Database,Database Design,Software Design,我正在尝试设置一个类似于Facebook的用户偏好,比如说,对于每个消息频道或社区,你可以设置可以发送给你的通知。此外,还有一些全局首选项,其中设置不属于某个频道或社区。设计数据库来保存这些信息的最佳方法是什么?据我所知,以下是一些常见的方法: 一个简单的表,其中包含全局首选项列表的user_id、preference_1、preference_2等列。在聊天频道的情况下,它将是用户id、聊天频道id、首选项…列,为每个类别(聊天频道、社区等)创建多个表。我听说这可能很糟糕,尤其是当你想添加新的
除了这两种方法之外,还有其他更好的方法吗?也许是那些不使用RDB的方法?在您提到的两种方法中,第二种似乎最合适 第一个是不可扩展的。这带来了一系列问题。搜索一个特定的首选项需要查看一组列——这通常意味着一次完整的表扫描 我不会将第二种方法称为“key/value”。它只是一个连接/关联表,用于连接用户和首选项。您可能希望扩展“首选项”表,使其具有“社区”首选项。这可能是一个单独的表,也可能只是单个表中的附加行
但是,您的问题没有足够的信息来提供数据模型应该是什么样子的详细信息。啊,我认为这是有道理的,谢谢!我对数据库设计不太熟悉,所以我将给出一个它可能是什么样子的示例。假设我们使用相同的消息通道和社区示例。对于消息频道,当有人添加到频道时,当有人发送消息时,等等,可以有一个通知;对于社区,他们可以在有人加入社区、发表文章时,或者更多时配置通知。这些信息有助于澄清一些事情吗?@abcdefg:作为一名Facebook用户,我唯一希望的选择是让朋友发帖子。我可以看到一些其他的选择,比如有人加入社区,对社区的创始者来说很重要,而对其他人来说几乎不重要。我的观点是,我希望yu在设计你的观点时对那些不想被通知轰炸的人保持敏感。否则,我同意戈登的观点。创建一个NotificationType表,该表包含您可以想象的每个通知的一行,并使用连接表将用户与通知关联起来。我明白了,这是有意义的。我同意通知轰炸对社区中的每个帖子都是有害的,我想我只是想用一个例子。非常感谢您的投入!既然你说你不太熟悉数据库设计,这里有一个指向和的维基百科链接。