PHPCR ссылки против детей

Я хочу перенести свою прежнюю систему магазинов с реляционной системы на документную основу. Причина очевидна: я хочу уменьшить сложность отношений, которые описывают магазинную статью, которая может иметь несколько различных свойств.

Итак, я прочитал документацию Doctrine PHPCR и обнаружил, что есть несколько примеров того, как построить модель со ссылками, потому что основными понятиями PHPCR являются:

  • Отображение иерархии
  • Рекомендации

как описано здесь: Сопоставление ассоциаций

Но документация использует обе концепции для одной и той же цели:

Список литературы: статья с автором и комментариями в качестве ссылок

Пример: Работа с объектами

Статья запрашивается по ее ID / пути: /article/hello-worldКомментарии и автор являются ссылками.

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

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

Hiearchical: пользователь блога как дочерний документ

Пример: QueryBuilder

Опрашивает пользователя блога (возможно, автора) по пути

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

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

Поэтому мой главный вопрос заключается в том, что может быть причиной для этого или, если быть более точным, каковы наилучшие практики для построения модели с динамическими свойствами, такими как статья в магазине?

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

или же

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

Было бы очень полезно, если бы кто-то поделился своим опытом.

0

Решение

Я нашел ответ сам:

  • Используйте иерархические ссылки, когда вы хотите переместить документы и изменить структуру
  • Используйте ссылки, чтобы описать / расширить документ

Для товаров в магазине лучше использовать ссылки на такие свойства, как имя, цена, налог и т. Д. и дети, если вы хотите иметь суб-статьи, такие как связки.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]