2017-04-18 3 views
0

レガシーショップシステムをリレーショナルシステムからドキュメントベースに移行したいと考えています。理由は分かりません。複数の異なるプロパティを持つことができるショップ記事を記述する関係の複雑さを軽減したいのです。PHPCR参照と子ども

だから私はPHPCRの主要な概念が

  • 参照

    • 階層マッピングされているので参照してモデルを構築する方法のいくつかの例があること、教義PHPCRのマニュアルを読み、見つけた
    • Assocation Mapping

      しかし、ドキュメントが同じ目標のために両方の概念を使用しています。

    ここで説明するように:

    参考文献:参照

    例として、著者やコメント付きの記事:記事は、そのID /パスによって照会されWorking with Objects

    /article/hello-world、コメントや著者が参照しています。

    /** 
    * @ReferenceOne 
    */ 
    private $author; 
    
    /** 
    * @Referrers(referrerDocument="Comment", referencedBy="article") 
    */ 
    private $comments; 
    

    Hiearchical:子文書としてブログユーザー

    例:The QueryBuilder

    それは私の主な質問、パスしたがって

    $qb->from('Blog\User', 'u'); 
    
    // where name is "daniel" 
    $qb->where() 
        ->eq()->field('u.name')->literal('daniel'); 
    

    により、ブログユーザ(propably作者)を問い合わせますそういう理由があるのか​​、それとももっと具体的なのか、モデルを構築するベストプラクティスは何ですかショップの記事のような動的なプロパティ?

    /article/id:properties[A|B|C] 
    

    または

    /article/id/propertyA 
    /article/id/propertyB 
    /article/id/propertyC 
    

    誰かがその経験を共有している場合、それは本当に参考になります。

  • +0

    私は、Blog \ Userはパスではなくドキュメント名であることを認識しましたが、それは質問の本質(imho)を変更しません。 –

    答えて

    0

    私は自分で答えが見つかりました:あなたは店の記事のために文書

    を拡張/記述するためにドキュメントを移動し、構造に

  • 使用の参照を再配置したいとき

    • 使用階層の参照を名前、価格、税金などのプロパティの参照を使用する方が良いあなたがバンドルのようなサブ記事を持っていたいと思えば、子供たちもいます。

  • 関連する問題