2017-04-18 56 views
0

我想將我的傳統商店系統從關係系統遷移到基於文檔的系統。原因很明顯:我想減少描述商店文章的關係的複雜性,這些文章可以有多個不同的屬性。PHPCR引用與兒童

所以我讀主義PHPCR的文件,發現,有如何建立與參考模型的幾個例子,因爲PHPCR的主要概念是

  • 層次映射
  • 參考
  • 這裏描述

Assocation Mapping

但文檔使用這兩個概念爲同一目標:

參考文獻:文章作者用和意見作爲參考

例子:Working with Objects

文章是由它的ID /路徑查詢:/article/hello-world,評論和作者的引用。

/** 
* @ReferenceOne 
*/ 
private $author; 

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

Hiearchical:博客用戶爲子文件

例子:The QueryBuilder

它通過路徑查詢博客用戶(propably作者)

$qb->from('Blog\User', 'u'); 

// where name is "daniel" 
$qb->where() 
    ->eq()->field('u.name')->literal('daniel'); 

因此,我的主要問題是,原因是什麼,或者更具體地說,建立模型智慧的最佳實踐是什麼? h像商店文章那樣的動態屬性?

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

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

如果有人分享自己的經驗這將是真正的幫助。

+0

我已經意識到Blog \ User不是路徑而是文檔名稱,但這不會改變問題的本質(imho)。 –

回答

0

我找到了答案通過自己:當你要移動的文件和重新排列結構

  • 使用引用來形容/擴展文件
  • 對於店鋪的文章

    • 使用分層引用,它更好地使用像名稱,價格,稅收等屬性的參考。和孩子,如果你想有像捆綁子文章。