什么类型的树用于这种方案?

时间:2012-11-01 13:05:42

标签: database database-design tree

我正在尝试建立联系人经理。我有一个数据结构,它有几个属性:

  • 它是树状的,意味着每条信息都可以分成子项(每个节点都有子项)。例如,名为address的字段可能包含streettownpostal code等子字段。

  • 节点不必是唯一的,例如email字段的多个节点应该能够彼此相邻共存(在同一级别)

我希望能够使用类似路径的方式探索树,例如按路径访问节点:address.streetname.first。访问密钥多次出现的节点可以像email[2]一样进行。

所以树看起来像:

contact
   ↳ name
        ↳ first      "foo"
        ↳ last       "von bar"
   ↳ email           "foo@bar.com"
   ↳ email           "baz@foo.de"
   ↳ address
           ↳ street  "foostreet 42"
           ↳ town    "barstadt"
           ↳ zip     "04229"
           ↳ country "footopia"
   ↳ address
           ↳ street  "barton alley 11"
           ↳ town    "foostadt"
           ↳ zip     "998877"
           ↳ country "alcabaz"
这是什么样的树?我尝试过使用Boost的property_tree,但发现很难实现address应该在高级别拆分的事实(Boost的标准方法会放streettown ,...一个address中的节点。)

欢迎任何想法。

1 个答案:

答案 0 :(得分:0)

  

这是什么树?

这是一棵树;)

您可以使用JSON和Jackson Lib为您的树建模:

http://www.mkyong.com/java/jackson-tree-model-example/