如何管理像Facebook这样的用户通知设置



我正在尝试设置一个类似于Facebook的用户偏好,比如说,对于每个消息频道或社区,你可以设置可以发送给你的通知。此外,还有一些全局首选项,其中的设置不属于某个频道或社区。设计数据库以保存这些信息的最佳方式是什么?根据我所读到的,以下是一些常见的方法:

  1. 一个简单的表,包含列user_id、preference_1、preferency_2等,用于全局首选项列表。在聊天频道的情况下,它将是列user_id、chat_channel_id、preferences。。。,为每个类别(聊天频道、社区等(制作多个表格。我听说这可能很糟糕,尤其是当你想添加新设置时,但我不知道太多
  2. 一个键/值数据库,具有User表和Preference表,该表通向User_Preferences表,其中键对应于用户/首选项和相应的值。很难想象我如何将其融入我的设计中,因为我需要每个社区的每个用户设置,以及每个用户的设置,还有很多其他东西

除了这两种方法之外,还有其他更好的方法可以研究吗,也许是不使用RDBS的方法?

在您提到的两种方法中,第二种似乎最合适。

第一个是不可扩展的。它带来了一堆问题。搜索特定的首选项需要查看一堆列,这通常意味着要进行完整的表扫描。

我不会将第二种方法称为";键/值";。它只是一个连接/关联表,用于将用户连接到首选项。您可能希望将偏好表扩展为具有";社区";偏好。这可能是一个单独的表,也可能只是单个表中的附加行。

不过,您的问题没有足够的信息来提供关于数据模型应该是什么样子的更多细节。

最新更新