Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 用于跟踪用户通知或活动的数据库(类似于Facebook)_Database_Facebook_Database Design_Notifications_Storage - Fatal编程技术网

Database 用于跟踪用户通知或活动的数据库(类似于Facebook)

Database 用于跟踪用户通知或活动的数据库(类似于Facebook),database,facebook,database-design,notifications,storage,Database,Facebook,Database Design,Notifications,Storage,我刚刚阅读了以下关于同一主题的帖子: 及 提供了一些解决方案,但并不是我所需要的,也不是像Facebook那样的通知系统应该如何使用 在通知中,我们通常会有一些指向用户的链接,这些链接指向用户所做的某些操作、他所评论的帖子或视频、指向任何内容的链接,并且通常在一个通知中会有多个链接 notification ----------------- id (pk) userid notification_type notification_text timestamp last_read 通过这种

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

提供了一些解决方案,但并不是我所需要的,也不是像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)
现在,我们可以编写一个模板来显示通知(我们现在不再需要notifications表中的text属性),然后处理它的显示。我对这个解决方案也不满意,因为从通知表派生的表的数量可能很大(对于每种通知类型)


我在寻找想法!:)

不幸的是,这里没有太多答案。我也有同样的问题,没有找到任何好的解决办法。数据库中的继承总是很棘手,而且过于复杂。 因此,我最终得到了一个简单的解决方案:将JSON封装的资源键值数组存储在“数据”列中

大概是这样的:

notification
-----------------
id (pk)
userid
notification_type
notification_data
timestamp
last_read
例如,对于注释通知,您将存储

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

然后使用通知类型在客户端正确格式化数据

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


希望这有帮助。

您是否尝试使用javascript读取json数据?我没有,但我可以告诉你,当你用php获取json数据时,它不能将json数据作为json对象读取。php将其读取为字符串,无法将字符串解码为json数据。然后使用通知类型在客户端正确格式化数据。看不到任何缺点,因为我们只需要客户端上的资源id来创建URL或意图,使用原子字段作为索引是无用的。希望这有帮助。