qingrun及各位高手:关系模型如何表达unix文件系统的结构关系?

l_cheng 2001-11-08 09:29:29
unix文件系统实际上是一个网状模型,一个文件可以被多个目录包含,而一个目录也可以属于多个目录,如果我想以关系模型表达,如何定义表和字段。并且检索时能有较好的效率
...全文
127 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
l_cheng 2001-11-10
  • 打赏
  • 举报
回复
谢谢各位,我们将使用xml解决这个问题
jackyz 2001-11-08
  • 打赏
  • 举报
回复
我在其他项目中有做过类似的,这里把方案提出来,有更好方案的,请不吝赐教。

节点表,每一个条目都是一个“节点”
table iNode(
iNode_ID, --节点ID
iNode_Name, --名称
iNode_Type, --类型,比如:目录,文件等。
iNode__CreateDate, --创建时间
iNode__ModifyDate, --更新时间
... --其他
)

节点关系表,每一个“节点”都需要一个(或一个以上的)“父节点”
table iNode_Relation(
iNode_ID, --节点ID
iNode_PID, --父节点ID
... --其他
)

对两个表的操作严格应用“规则”,应该可以实现你的要求(树+链接)。
优点:能够实现高度复杂的层次结构,可以无级扩展。
缺点:对这样的结构进行检索需要进行“递归”,效率可能不高。如果用“数据cache”效率可以得到补救。
青润 2001-11-08
  • 打赏
  • 举报
回复
这个可能比较麻烦一些,我需要仔细想一想。
l_cheng 2001-11-08
  • 打赏
  • 举报
回复
实际上这个设计用网状结构表达最好,我可以用文件系统的原理实现,将管理信息放入文件中,将数据放入数据库;但现在要求用rdbms进行管理,既用数据库保存数据信息,也保存管理信息,但用关系结构来表达网状结构不仅复杂,而且效率低,仁兄可有好建议!
l_cheng 2001-11-08
  • 打赏
  • 举报
回复
是一个需要实现类似结构系统,由于保密的原因,不方便写出来,所以用文件系统的例子代替。
青润 2001-11-08
  • 打赏
  • 举报
回复
你是不是想按照unix的文件系统模型建立一个数据库结构能够实现这种效果?
SE1 2001-11-08
  • 打赏
  • 举报
回复
to(l_cheng):
这样改进一下是否更好?
节点表,每一个条目都是一个“节点”
table iNode(
iNode_ID, --节点ID,主键
iNode_Name, --名称
iNode_Type, --类型,比如:目录,文件等。
iNode__CreateDate, --创建时间
iNode__ModifyDate, --更新时间
... --其他
)

节点关系表,每一个“节点”都可与零个或多个“节点”发生关系
table iNode_Relation(
iNode_ID, --节点ID,主键,外键 -〉iNode_ID
iNode_OID, --其他节点ID,主键,外键 -〉iNode_ID
iNode_RelationType, -- iNode_ID与iNode_OID的关系,如“父”或“子”,可以定义其值域
)

两个表,两个外键!
l_cheng 2001-11-08
  • 打赏
  • 举报
回复
to(jackyz):
目前,我们的设计与你相同,但效率仍是问题。结构如下:

节点表,每一个条目都是一个“节点”
table iNode(
iNode_ID, --节点ID
iNode_Name, --名称
iNode_Type, --类型,比如:目录,文件等。
iNode__CreateDate, --创建时间
iNode__ModifyDate, --更新时间
... --其他
)

节点父关系表,每一个“节点”都需要零个或多个“父节点”,该表支持向上查找
table iNode_Relation(
iNode_ID, --节点ID
iNode_PID, --父节点ID
... --其他
)

节点子关系表,每一个“节点”都有零个或多个的“子节点”,该表支持向下查找
table iNode_Relation(
iNode_ID, --节点ID
iNode_CID, --子节点ID
... --其他
)

1,268

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧