george-zakharov / tree-structure
该包最新版本(dev-master)没有可用的许可证信息。
此项目帮助通过MySQL使用嵌套集方法操作树结构。
dev-master
2021-02-13 12:47 UTC
Requires
- php: >=7.4
This package is auto-updated.
Last update: 2024-09-13 20:58:15 UTC
README
文件
index.php
- 这是应用程序的入口。
- 它需要 NodeHandler.php 并在其中创建新的 NodeHandler 对象。
- 在代码块的顶部,以注释形式展示了节点插入和删除的可能实现。
- 在 HTML 的
<!-- Tree structure -->
块内部,存在$nodes->showTree()
和$nodes->showTree(3)
,提供两种模式的 节点树 表示$nodes->showTree()
显示整个 节点树,$nodes->showTree(3)
显示由 节点($id = 3
)限制的 节点树 的部分。
main.css
- 这是应用程序的主样式表。
App/DbConnector.php
- 通过单例模式提供对 数据库 的连接。
- 连接参数存储在 DbConnector 类的属性中
$host
为主机名,$db_name
为 数据库 名称,$user
为登录名,$pass
为密码。
- 主要方法包括
getInstance()
用于 DbConnector 类,getConnection()
用于 PDO 对象。
App/Model.php
- 该文件存储用于对 DB 执行操作的 Model 类。
- 主要方法包括
getNodes()
显示整个节点树或其部分,setNode()
向树中添加新节点,deleteNode()
从树中删除节点。
App/NodeHandler.php
- 该方法为 index.php 页面提供节点的表示。
- 主要方法包括
showTree()
用于echo
整个节点树或如果提供 参数 则为其部分,addNewNode()
通过 Model.php 将新节点添加到 数据库 的根节点或指定级别,deleteNode()
通过 Model.php 从指定级别或删除整个树中删除节点。
tree-structure-example.sql
- 这是我的本地
tree-structure
数据库 表的转储。 - 部分填充以供示例。
数据库结构
- 数据通过 嵌套集 方法存储。
- 例如,提供了一个目录(汽车)的这种层次结构
- vehicle
- 类型(摩托车,汽车)
- 品牌(奥迪,宝马,福特)
- 型号(A1,A2,Focus等。)
- 年份(1999,2003等。)
- 型号(A1,A2,Focus等。)
- 品牌(奥迪,宝马,福特)
- 类型(摩托车,汽车)
- 所有节点都嵌套在相应的级别上。
- 可以在靠近
vehicle
的新根级别中添加新根。例如,animal
有其自己的节点层次结构,但通过right_key
和left_key
与相邻的 根节点 相连接。