我正在尝试开发一个网站,其中存储了许多食谱,并为客户检索。我有一些关于XML和基于XML的原生数据库的课程,这些课程介绍了原生XML数据库的概念。此外,如果我没记错的话,我们了解到XQuery是最适合使用XML的编程语言。由于配方的半结构而不是表格性质,我想(如果我错了请纠正我),它最好用XML文件表示,如下所示:
<recipe>
<ingredients>
<name='floor' amount='500g'/>
<name='y' amount='200g'/>
</ingredients>
<steps>
<step id='1'> first prepare .....
<steps>
</recipe>
我知道关系数据库比其他选项有其优势和荣耀,但是在这种特殊情况下,它会导致对表进行如此多的连接操作。另一方面,对于我们来说,原生XML数据库对于它们的性能和处理大量数据的能力似乎不太有希望。此外,考虑到大量的教程和互联网帮助,PHP编程比XQuery简单得多。 我真的不知道该怎么做,这就是我找你们的原因。
答案 0 :(得分:2)
如果您希望完全使用XQuery构建完全成熟的Web应用程序,您应该查看Sausalito:http://www.28msec.com 屏幕录像直播:http://www.youtube.com/watch?v=4SZ8n4xe3ws
答案 1 :(得分:1)
使用关系数据库 - 因为如果您获得更大的记录,它会更快,并且创建起来更简单。 (对于你的例子,它是3个表 - 一个有食谱,另一个有食谱,最后一个有步骤。另一种是用所有已知成分创建表并使用关联 - 例如。食谱ID,成分ID和数量)
答案 2 :(得分:1)
然后你可以想到关系 - db。
然后Xml数据库就是关键。
答案 3 :(得分:0)
似乎你认为你必须在这里选择一个或另一个。事实并非如此,XQuery并没有真正成为一个完整的Web脚本环境,它取代了SQL而不是PHP。因此,您当然可以使用PHP来执行站点的Web聚焦部分,例如用户登录(也可能位于关系数据库中),然后仅将XQUery用于配方查询层。
某些XML数据库(如MarkLogic)也可以执行等式的所有Web逻辑方面,但它们还没有提供相同的丰富库,所以我当然会推荐PHP或类似的Web层。