2013-12-22 90 views
0

我已经开始关注Symfony CMF,我必须说它看起来不错! 但是,我无法理解数据库Schema!我已经阅读了PHPCR的基础知识,并在一定程度上了解它。令我困惑的一点是Symfony CMF安装的所有额外表格。即Symfony CMF数据库模式

  • phpcr_binarydata
  • phpcr_internal_index_types
  • phpcr_namespaces
  • phpcr_nodes
  • phpcr_nodes_references
  • phpcr_nodes_weakreferences
  • phpcr_type_childs
  • phpcr_type_nodes
  • phpcr_type_props
  • phpcr_workspaces

都是这些用途是什么?我能理解的唯一表格是phpcr_nodes和存储的XML /属性数据!一些表格有数据并且正在查询 - 但我在phpcr_nodes中看不到任何对它们的引用!

例如:

表 “phpcr_type_nodes” 具有数据如

名:phpcr:管理 超类型:核苷酸:碱

表 “phpcr_type_props” 具有

数据,例如名称:copyright

回答

0

当你看到这个模式,这意味着你正在使用Jackalope Doctrine DBAL,它是PHPCR API的一个可能的实现。这在关系数据库的顶部实现了PHPCR。不幸的是,没有太多的文档可用,但所有这些表都被使用。

如果你想了解更多关于PHPCR的信息,我建议你看看这个PHPCR Tutorial。如果您真的想详细了解数据库架构,则需要深入了解Hackalope Doctrine DBAL的源代码。

请注意,您也可以在CMF中使用doctrine ORM。 RoutingBundle已经为它提供了映射,对于其他的bundle可以实现ORM映射,我们很乐意贡献。

PS:我从来没有想过如何获得通知后的初始通知在stackoverflow,所以最好打开相关的github存储库上的问题,如果你需要更多的信息。

+0

感谢您的回复。我对CMF进行了进一步的实验,并且可以看到诸如phpcr_binarydata这样的表格被用于通过mediaBundle存储媒体。唯一让我失望的是查询的数量!通过媒体包,有70多个查询(尽管我可能做错了什么)?不过,我相信默认CMF页面上有40个!我现在使用CMF来进行“简单cms”和数据库路由。我已经安装了ORM,似乎CMF正常工作!总的来说 - 我发现CMF是一个很好的学习曲线! –

+0

我们为PHPCR-ODM版本1.1付出了一些努力,以减少查询次数。但是,如果您使用菜单,它仍然相当密集。 – dbu