我正在尝试创建一个可以像 Twitter 一样使用的数据库。即:
- 树结构:任何节点都可以有多个子节点。
- 所有节点都有时间戳
标准 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/