我应该将哪些数据库或伪数据库用于可变数据?

时间:2015-10-09 12:58:30

标签: xml database data-structures variable-length

用于存储可变数据的最佳软件或平台组合是什么?

我的数据是标准名称 - 值对。在树的顶部有几个大类,每个类都有一个名称和一个值(类别名称),也可能在它下面有名称 - 值对。这些将具有子类别,并且可以具有子子类别和子(n) - 类别等。其中每个都有名称和值,并且每个属性都表示为名称 - 值对。

当然,一些XML的含义是有道理的; SQL /关系数据库(我最喜欢的)没有。例如,数据可能类似于以下生物分类。

<Kingdom>Animal
<Mammal>Yes
<Legs> 
    <4Legs>90%
        <EyeColor>
            <EyeColorBrown>40%
                <HairColorBrown>40%</HairColorBrown>
                <HairColorBlack>40%</HairColorBlack>
            </EyeColorBrown>
            <EyeColorBlack>60%
                <HairColorBrown>40%</ HairColorBrown>
                <HairColorBlack>40%</ HairColorBlack>
            </EyeColorBlack>
        </EyeColor>
    </4Legs>
    <2Legs>5%
        <EyeColor>
            <EyeColorBlue>20%
                <HairColorBrown>40%</HairColorBrown>
                <HairColorBlack>40%</HairColorBlack>
                <HairColorBlonde>40%</HairColorBlonde>
            </EyeColorBlue>
            <EyeColorBrown>20%</EyeColorBrown>
            <EyeColorBlack>60%</EyeColorBlack>
        </EyeColor>
    </2Legs>
    <NoLegs>5%</NoLegs>
</Legs>
</Mammal>
</Kingdom>

所以,在我的代码中,我想创建一个表单,例如,如果有人选择2Legs,它会显示三个眼睛颜色选项,选择Blue会显示三个头发颜色选项。然后,当提交表单时,我希望能够用他们的选择集存储用户名,例如

<UserName>John Doe
    <Choice1>
        <Kingdom>Animal
            <Mammal>Yes
                 <Legs>
                     <2Legs>
                         <EyeColorBlue>20%
                               <HairColorBrown>
                      <...close each...>
    </Choice1>
</UserName>

我听说过XMLDB,NoDB,NoSQL和其他许多人,但不知道从哪里开始。我希望能够将数据库与PHP和JavaScript一起使用,但除此之外我该如何处理?

请注意,我希望最终能够使用不同的数据集。换句话说,我可以做上面的动物数据,然后使用类似的东西来建造一个网站...让我们说家具。

1 个答案:

答案 0 :(得分:0)

看起来像是文档存储数据库的候选者,您可以在wiki上阅读:https://en.wikipedia.org/wiki/Document-oriented_database。我不知道关于PHP的任何事情 - 但看起来它支持Mongo(http://php.net/manual/en/class.mongodb.php),也许还有一些其他选项

此资源也相当酷:http://nosql-database.org/

没有理由在关系数据库中无法做到这一点 - 它需要提前深入了解结构。我想你想避免的是什么?