如何在数据库表中创建二叉树的概念?

时间:2017-01-24 01:23:20

标签: android algorithm sqlite binary-tree

我和我的朋友正在讨论这个问题而我并不理解这个想法。这个概念的每个元组都有一个parent_id。但是,我不知道如何使用此属性作为参考来遍历表,如二叉树。我试图在数据库中模拟圣经。圣经由两个现代空间组成,这些空间是与书籍相关的旧约和新约。这些与章节和章节相关联。我希望能够使用url在数据库中存储特定的段落。每个网址都与布道和解释相关联。我打算为每个类创建一个表,因此模式看起来像这样。

contemporaryspace(ID int,oldornew string)  
books(ID int,whichbook string)  
chapters(ID int,which_chapter string)  
passages(ID int,which_passage string)  

我对数据库完全陌生,并计划这样做;然而,一位朋友告诉我这是一个坏主意,最好只将一张桌子变成二叉树以实现我的目标。

1 个答案:

答案 0 :(得分:0)

如果一个父项的子项少于或少于两个,则该树不是二进制。

如果数据库中的任何条目的处理方式与其他条目不同,则它们具有不同的类型,应该进入单独的表。 例如,如果一本书可以有一个作者而不是一个章节,那么你就不应该在同一个表格中存储有关书籍和章节的信息。

但是,可能并非所有表都是实际需要的。书籍有一个属性,指定它们是在OT还是NT,这是一个引用contemporaryspace表的外键,但如果"OT"实际上没有存储任何有用的信息,那么你不需要该表格,您可以将"NT"r1 !== r2直接存储在图书表格中。