mysql - 类似Twitter的数据库表结构

标签 mysql twitter database-design tree database-schema

我正在尝试创建一个可以像 Twitter 一样使用的数据库。即:

  1. 树结构:任何节点都可以有多个子节点。
  2. 所有节点都有时间戳

标准 1 和 2 建议基于基本列的表结构,例如:

NodeID        (int)
ParentNodeID  (int)
UserID        (int)
TS            (TimeStamp)
MSG           (varchar)

当查看任何节点(n)时,应选择直到根(包括根)的所有父节点,使用ParentNodeID指针可以轻松实现这一点。

这里有一个警告:除了父节点之外,当前节点(n)的所有子节点也应该按时间顺序(基于 TS)选择从表中。所有子节点,无论哪个子分支,都属于 (n) 为根的子树。

如何最好(更好)地构建此类查询的表?

最佳答案

您应该了解 Twitter 的发展情况,并检查您的用例是否足够相似。

这篇带有数据库架构示例的文章可能是一个好的开始:https://web.archive.org/web/20161224194257/http://www.cubrid.org/blog/dev-platform/decomposing-twitter-database-perspective/

关于mysql - 类似Twitter的数据库表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34165521/

相关文章:

php - 从 MySQL 检索语言短语

mysql - 如何优化此 VIEW 语句?

Mysql 选择没有分组依据的列

php - 如何为 Multi-Tenancy SaaS产品设计有效的数据库?

javascript - 使用我的时区在我的网站上显示推文

c - 将推文拆分为单独的字符串

twitter - 通过 REST API 在 Twitter 上获取状态并不总是返回媒体 URL

database - 数据库设计中的存量和流量

sql - 数据库:附录'HX'是否具有重要值(value)?

sql - PostgreSQL 中的外键匹配