【问题标题】:Symfony CMF Database SchemaSymfony CMF 数据库模式
【发布时间】:2013-12-25 17:43:49
【问题描述】:

我已经开始研究 Symfony CMF,我必须说它看起来不错! 但是,我无法理解数据库架构!我已经阅读了 PHPCR 的基础知识,并在一定程度上理解了它。让我感到困惑的是 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:托管 超类型:nt:base

表“phpcr_type_props”有数据如

名称:版权

【问题讨论】:

    标签: php mysql symfony symfony-cmf doctrine-phpcr


    【解决方案1】:

    当您看到此架构时,表示您正在使用Jackalope Doctrine DBAL,这是 PHPCR API 的一种可能实现。这在关系数据库之上实现了PHPCR。不幸的是,没有太多可用的文档,但所有这些表都被使用了。

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

    请注意,您也可以将教义 ORM 与 CMF 一起使用。 RoutingBundle 已经为它带来了映射,对于其他包来说,实现 ORM 映射是可行的,我们很高兴能做出贡献。

    PS:我从来不知道如何在 stackoverflow 的初始通知之后获得通知,所以如果您需要更多信息,最好在相关的 github 存储库上打开一个问题。

    【讨论】:

    • 感谢您的回复。我已经对 CMF 进行了进一步的实验,并且可以看到诸如 phpcr_binarydata 之类的表被用于通过 mediaBundle 存储媒体。唯一让我失望的是正在进行的查询数量!使用媒体包有 70 多个查询(不过我可能做错了什么)?但是,我相信默认 CMF 页面上有 40 个!我现在将 CMF 用于“简单 cms”和数据库路由。我已经安装了似乎与 CMF 一起工作的 ORM!总的来说 - 我发现 CMF 是一个很好的学习曲线!
    • 我们为 PHPCR-ODM 1.1 版做了一些努力来减少查询次数。但是,如果您使用菜单,它仍然相当密集。
    猜你喜欢
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多