如何使用数据库表示类似于文件系统的层次结构?

2017-10-17 17:44:59 +08:00
 hwding

就相当于是一个文件夹里可以在新建一个文件夹,文件夹里也能存文件这种。
如何表示文件夹与文件的位置以及他们的从属关系呢?

感觉就是目录树这样的吧(随便举一个例子):

src/com/deleted/mailing/
├── ConfigurationManager.java
├── Main.java
├── server
│   ├── MailingRequestHandler.java
│   ├── MailingRequestServer.java
│   └── util
│       ├── MailBodyUtil.java
│       └── RequestBodyUtil.java
└── service
    ├── delivery
    │   ├── DeliverCore.java
    │   └── DeliverJob.java
    ├── MailingTaskManager.java
    ├── remote
    │   ├── DataSourceCore.java
    │   └── RemoteContentUtil.java
    └── util
        ├── MailBodyUtil.java
        ├── MassiveMailingTaskDetail.java
        ├── PageDetail.java
        ├── ScheduleManager.java
        └── SingleMailingTaskDetail.java

984 次点击
所在节点    问与答
1 条回复
aphorism
2017-10-17 18:10:01 +08:00
有一本书完全满足你——《 Joe Celko's Trees and Hierarchies in SQL for Smarties 》

基本上把所有能够使用到的方法都总结了一遍,这个问题在关系数据库领域是一个非常有趣的题目,在不同的应用领域通常用不同的解决方案,特别的需求就需要一些特别的设计。

VLDB 这几年还有几篇 SAP 的人把他们在 HANA 上做了一些尝试发了论文(如果这些树型层次结构高度动态化,那么应当怎么样在关系数据库中设计特定的模型与操作算法来达到要求),见:

www.vldb.org/pvldb/vol8/p986-finis.pdf

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/398402

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX