php - 在 PHP MYSQL 中跟踪对话

标签 php mysql twitter

背景:我一直在使用 Twitter API。设置它,以便当有人提及/向我发送消息时,它会被发送到聊天机器人。机器人做出回复,我使用 API 发布推文。 除了名为 rep_to_stat_id 的字段之外,每条推文都有一个唯一的 status_id,因此对话如下所示:

person 'hi how are you?'          stat_id = 1 rep_to_stat_id = blank
    me 'ok, and you?'             stat_id = 2 rep_to_stat_id = 1
person 'are you stalking me'      stat_id = 3 rep_to_stat_id = 2
    me 'no you are stalking me'   stat_id = 4 rep_to_stat_id = 3

等等

当我第一次发送给机器人时,创建一个随机对话 ID (conv_id),以便机器人可以跟踪对话。

问题在于跟踪它,它就像一个梯子,通向原始的 stat_id,没有 rep_to_stat_id,并且必须包含通用的 conv_id >.

到目前为止,我一直拥有具有一对多类型设置的表,我无法理解这是什么类型的结构。

mysql 中是否有一个选项可以添加到查询中,以跟踪每个对话的阶梯到其第一个/最后一个点?

最佳答案

在关系数据库中存储分层数据的方法有很多种。

最常见的方法之一是简单地创建一个包含您提到的所有列的表(stat_idrep_to_stat_id [nullable] 和 conv_id)。问题是,要检索直到根节点的完整树,您需要一个递归函数(在 MySQL 或您选择的脚本语言中),进行多次查询。

This Stack Overflow question应该可以让您很好地了解用于建模树结构的所有可用选项。

关于php - 在 PHP MYSQL 中跟踪对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10985579/

相关文章:

php - 将Mysql查询结果传递给javascript,然后使用原始变量调用函数。

ios - MGTwitterEngine 和 IOS 5.0.1 不工作,适用于 IOS 4.x

twitter - 如何使用 Postman 客户端调用 Twitter API

使用 oauth 和 twitter4j 集成 Android Twitter

PHP 检查时间戳是否小于 30 分钟

php - urlencode 和 file_get_contents

java - 如何使用 .Net 以外的技术连接并交换 2010 服务器?

mysql - CakePHP 返回 ?? MySQL查询汉字时

php - for 循环中的准备语句只执行一次

php - 提取数据库信息并显示为 html 问题?