Pergunta

Como devem ser nomeados os nós em um repositório de conteúdo como JackRabbit?Não entendo se os nomeio com base em um ID, texto etc.

Digamos que você esteja prestes a armazenar páginas de blog.Você deve usar o título ou o quê?

Foi útil?

Solução

Realmente não importa como eles são nomeados.Se possível, nomeie-os com algo que signifique algo para sua aplicação:nome do cliente, ID do pedido, nome de usuário, nome do arquivo do anexo, etc.Mas isso é difícil de fazer em todas as situações (por exemplo, perguntas em um site de perguntas e respostas), então você pode precisar recorrer à nomeação de nós por alguma chave ou identificador gerado.

Não importa como você nomeie os nós, certifique-se de que sua estrutura de nós seja uma hierarquia e não uma estrutura plana (por exemplo, com dezenas de milhares de nós filhos sob um único pai).Os repositórios JCR são inerentemente hierárquicos e sempre terão melhor desempenho quando a estrutura for hierárquica.

Por exemplo, "/orders/{id}" funcionará com um número pequeno de clientes, mas terá dificuldades quando o número de clientes for superior a vários milhares.Se possível, use camadas adicionais que irão subdividir o {id} espaço de valor em porções gerenciáveis.As datas às vezes funcionam:

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

ou se o id são suficientemente aleatórios e bem distribuídos (por exemplo, UUIDs ou SHA1s), então você pode subdividir usando partes do id:

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

Além disso, com JCR, irmãos com o mesmo nome funcionam bem quando é difícil garantir a não duplicação.Geralmente, irmãos com mesmo nome são problemáticos porque os caminhos podem mudar, dificultando o uso de aplicativos que dependem de caminhos (mesmo por um curto período de tempo, por exemplo, entre solicitações).No entanto, se o aplicativo sempre lê os filhos do SNS e os processa imediatamente, então irmãos com o mesmo nome podem ser aceitáveis ​​para seu aplicativo.

Freqüentemente, os caminhos são usados ​​no lugar das propriedades REFERENCE ou WEAKREFERENCE e, nesses casos, os nós SNS são realmente ruins, pois os "caminhos de referência" não são duráveis.Se você usar nós SNS, considere usar algum tipo de propriedade de referência.REFERENCE e WEAKREFERENCE são bidirecionais, mas as implementações podem oferecer alternativas.Por exemplo, ModeShape oferece propriedades "SIMPLE_REFERENCE" que não são padrão, mas unidirecionais, o que significa que você pode ter qualquer número de valores de propriedade SIMPLE_REFERENCE apontando para um único nó referenciável sem problemas de escalabilidade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top