Я хочу перенести свою прежнюю систему магазинов с реляционной системы на документную основу. Причина очевидна: я хочу уменьшить сложность отношений, которые описывают магазинную статью, которая может иметь несколько различных свойств.
Итак, я прочитал документацию 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
Было бы очень полезно, если бы кто-то поделился своим опытом.
Я нашел ответ сам:
Для товаров в магазине лучше использовать ссылки на такие свойства, как имя, цена, налог и т. Д. и дети, если вы хотите иметь суб-статьи, такие как связки.
Других решений пока нет …