Question

Comment doivent être nommés les nœuds d'un référentiel de contenu comme JackRabbit ?Je ne comprends pas si je les nomme d'après un identifiant, un texte, etc.

Disons que vous étiez sur le point de stocker des pages de blog.Faut-il utiliser le titre ou quoi ?

Était-ce utile?

La solution

Peu importe leur nom.Si possible, nommez-les d'une manière qui signifie quelque chose pour votre application :nom du client, identifiant de commande, nom d'utilisateur, nom de fichier de pièce jointe, etc.Mais cela est difficile à faire dans toutes les situations (par exemple, des questions sur un site de questions-réponses), vous devrez donc peut-être recourir à la dénomination des nœuds par une clé ou un identifiant généré.

Quel que soit le nom que vous donnez aux nœuds, assurez-vous que votre structure de nœuds est une hiérarchie et non une structure plate (par exemple, avec des dizaines de milliers de nœuds enfants sous un seul parent).Les référentiels JCR sont intrinsèquement hiérarchiques et fonctionneront toujours mieux lorsque la structure est hiérarchique.

Par exemple, "/orders/{id}" fonctionnera avec un petit nombre de clients, mais aura du mal lorsque le nombre de clients dépasse plusieurs milliers.Si possible, utilisez des couches supplémentaires qui subdiviseront le {id} diviser l'espace de valeur en portions gérables.Les dates fonctionnent parfois :

/orders/yyyy/mm/dd/{id}

ou si le id les valeurs sont suffisamment aléatoires et bien distribuées (par exemple, UUID ou SHA1), vous pouvez alors les subdiviser en utilisant des parties du id:

/orders/{id-chars1-2}/{id-chars3-4}/{id}

De plus, avec JCR, les frères et sœurs du même nom fonctionnent bien lorsqu'il est difficile de garantir l'absence de doublons.Généralement, les frères et sœurs du même nom posent problème car les chemins peuvent changer, ce qui rend la tâche difficile pour les applications qui s'appuient sur des chemins (même pendant une courte période de temps, par exemple entre les requêtes).Cependant, si l'application lit toujours les enfants SNS et les traite immédiatement, alors les frères et sœurs du même nom peuvent être acceptables pour votre application.

Souvent, les chemins sont utilisés à la place des propriétés REFERENCE ou WEAKREFERENCE, et dans ces cas, les nœuds SNS sont vraiment mauvais puisque les « chemins de référence » ne sont pas durables.Si vous utilisez des nœuds SNS, envisagez d'utiliser une sorte de propriété de référence.REFERENCE et WEAKREFERENCE sont bidirectionnels, mais les implémentations peuvent offrir des alternatives.Par exemple, ModeShape propose des propriétés « SIMPLE_REFERENCE » qui sont non standard mais unidirectionnelles, ce qui signifie que vous pouvez avoir n'importe quel nombre de valeurs de propriété SIMPLE_REFERENCE pointant vers un seul nœud référençable sans problème d'évolutivité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top