gpt4 book ai didi

用于跟踪用户通知或事件的数据库(类似于 Facebook)

转载 作者:太空狗 更新时间:2023-10-30 01:47:11 28 4
gpt4 key购买 nike

我刚刚阅读了以下关于同一主题的帖子:

Facebook like notifications tracking (DB Design)Database design to store notifications to users

提供了一些解决方案,但不是我所需要的,也不是像 Facebook 一样的通知系统。

在通知中,我们经常有一些链接指向执行了某些操作的用户,链接到他评论过的帖子或视频,链接到任何东西,而且通常我们在一个通知中有多个链接。

notification
-----------------
id (pk)
userid
notification_type
notification_text
timestamp
last_read

通过这种表结构,我们可以显示单个用户的所有通知,这是非常可靠的解决方案。但是在这种情况下,我们只能显示纯文本通知。我们不能简单地链接到用户或墙上的帖子。

我正在努力想出解决这个问题的方法。一种是将 BB 代码存储在 notification_text 属性中,但是您需要为 Web 和移动应用程序编写 BB 代码解析器。另一种方法是创建另一个表,该表派生自该通知表,其中包含我们需要的实体的 ID。一个例子:

PostCommentNotification : Notification
----------------------------------------
id
userId (user who commented on a wall post)
postId (post where comment was made)

现在我们可以编写一个显示通知的模板(我们现在不再需要通知表中的 text 属性)然后处理显示它。我对这个解决方案也不满意,因为从通知表派生的表的数量可能很大(对于每种通知类型)。

我正在寻找创意! :)

最佳答案

不幸的是这里没有很多答案。我有同样的问题,没有找到任何好的解决方案。数据库中的继承总是很棘手,而且很快就会变得复杂。所以我最终得到了一个简单的解决方案:将包含在 JSON 中的资源的键值数组存储在“数据”列中。

像这样:

notification
-----------------
id (pk)
userid
notification_type
notification_data
timestamp
last_read

例如,对于评论通知,您将存储

[{"author_id": "1234", "comment_id":"1234"}]

然后您使用 notification_type 在客户端正确格式化您的数据。

看不到任何缺点,因为我们只需要客户端上的资源 id 来创建 url 或 intents,索引的原子字段是无用的。

希望这对您有所帮助。

关于用于跟踪用户通知或事件的数据库(类似于 Facebook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6793854/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com