我需要存储如下所示的数据:
<root>
<child-one>
value 1
value 2
...
value n
</child-one>
...
</root>
我的意思是,这是一棵非常浅的树,叶子数量可变。
我本来希望将这些数据存储在关系数据库中,但如果没有这样做,我无法找到这样做的方法:
使用多个“加入”表格
例如:
(Object (root, child-one, child-two, ...))
(Join1 (child-one, value 1), (child-one, value 2), ... (child-one, value n) )
(Join2 (child-two, value 1), (child-two, value 2), ... (child-two, value n) )
etc.
使用“array”数据类型(来自Postgresql)
(Object (root, child-one[], child-two[] ...))
如果我不允许使用XML存储或文档存储,那么这两个中哪一个是最佳选择?我缺少另一种策略吗?
谢谢。
答案 0 :(得分:1)
您可以使用以下架构吗?
id | rootName
---|---------
0 | root1
id | childName | fk_root
---|-----------|--------
0 | child-one | 0
1 | child-two | 0
id | valueData | fk_child
---|-----------|--------
0 | value1 | 0
1 | value2 | 0
2 | value3 | 1
这将导致/来自:
<?xml ?>
<root1>
<child-one>
<value1 />
<value2 />
</child-one>
<child-two>
<value3 />
</child-two>
</root1>