sql - 如何在 MySQL 中表示树及其内容?

标签 sql mysql database database-design tree

我需要能够存储这样的东西: Structure

其中绿色是模板类型,灰色是字段容器类型,白色是字段。 (也就是说,一个字段有一个标签和一些文本,为简单起见都是中文本;字段容器可以存储其他字段容器或文本,模板是顶级字段。)

现在,假设我想允许用户创建任意数量的此类结构,但不太可能超过 10 个。当然,我们需要能够将数据链接到它。

这一切都是为了能够在数据库中存储一个关联数组,该数组在伪代码中查找上述内容:

my_template = {
  page_info => { description => 'hello!!!' },
  id => 0,
  content => { background_url => '12121.jpg', text => ...
}

当模板更改时(例如,我们向 page_info 添加 keywords),如果有一种简单的方法可以使用模板向所有数据添加字段,这将是一个很大的优势。

我完全搞不懂,非常感谢!

最佳答案

有几种不同的方法可以在 MySQL 中存储分层数据结构(树)。例如,您可以选择:

  • 邻接表
  • 嵌套集
  • 路径枚举
  • 关闭表

参见 Bill Karwin 的 presentation以了解有关每种优缺点的更多详细信息。

关于sql - 如何在 MySQL 中表示树及其内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3489449/

相关文章:

php - 根据另一列的值按不同列排序

java - SQL 条件原子插入

mysql - 如何在数据库中存储数据

mysql - 用于在 MySQL 中插入值的 Bash 脚本

php - 如何使用单个配置文件配置本地主机和远程服务器

database - 在 SAS 中的 2 个 ID 属性中查找最高级别的变量

mysql - 使用 MySQL View 检索运行总计

mysql - SQL - 为什么我的查询不起作用?

sql - 在 SELECT 中使用定义的变量会导致语法错误

mysql - filemaker 小结的 sql 等价物是什么?