0
A
回答
2
这并不重要,它们被命名为东西。如果可能的话,他们的名字的东西,这意味着什么给你的应用程序:客户名称,订单ID,用户名,附件的文件名等,但是,这是很难在所有的情况下(例如,在Q &一个网站的问题),所以你可能需要做通过一些生成的密钥或标识符来求助于命名节点。
不管你命名的节点,请确保您的节点结构是一个层次,而不是一个平面结构(例如,与子节点数以万计的单亲下)。 JCR存储库具有固有的层次结构,并且在结构层次化时总能更好地执行。
例如,“/orders/{id}
”将与客户的少量工作,但是当客户的数量比几千多必争。如果可能,请使用额外的图层,将{id}
值空间细分为可管理的部分。日期有时工作:
/orders/yyyy/mm/dd/{id}
,或者如果id
值是足够随机和均匀分布(例如,UUID的或SHA1s),然后就可以细分使用id
的部分:
/orders/{id-chars1-2}/{id-chars3-4}/{id}
另外, JCR同名兄弟姐妹在确保不重复的情况下很难发挥作用。一般来说,同名兄弟姐妹是有问题的,因为路径可能会改变,使得依赖路径的应用程序(即使是在短时间内,例如请求之间)很困难。但是,如果应用程序始终读取SNS子项并立即处理它们,则可能会为您的应用程序接受同名兄弟。
通常,路径代替引用或WeakReference的性质使用,在这些情况下,SNS节点是非常糟糕的,因为“引用路径”不耐用。如果您使用SNS节点,那么请考虑使用某种引用属性。 REFERENCE和WEAKREFERENCE是双向的,但实现可能提供替代方案。例如,ModeShape提供了非标准但单向的“SIMPLE_REFERENCE”属性,这意味着您可以将任何数量的SIMPLE_REFERENCE属性值指向单个可引用节点,而不存在可伸缩性问题。
相关问题
- 1. 什么是内容存储库中的节点和属性?
- 2. 摆脱mercurial存储库中的“无名”节点
- 3. SVN存储库内容
- 4. 如何检查节点是否从内容存储库中删除?
- 5. Erlang中的命名节点
- 6. 将值存储在内存节点js
- 7. 使用boost库释放共享内存中的节点内存
- 8. 节点js博客平台如何使用ghost存储内容?
- 9. XML节点命名
- 10. 在存储库中存储git-flow分支命名配置
- 11. 名称节点存储什么?
- 12. Xtend的_field命名和SpringData的存储库命名约定
- 13. Github将存储库内容复制到另一个存储库
- 14. 存储内容
- 15. 存储在节点
- 16. Java内容存储库实现:单线程,内存中,只读?
- 17. Python的minidom命名:节点
- 18. Git存储库内的Git存储库
- 19. NoSQL存储用于在内存中存储图像的内容?
- 20. Mercurial - 重命名/合并存储库
- 21. 如何重命名GitHub存储库?
- 22. 重命名存储库文件夹
- 23. 在类中存储内存内容 - C++
- 24. 存储库应包含哪些内容?
- 25. GitHub GraphQL读取存储库内容
- 26. 命名或重命名本地Yum存储库
- 27. 在节点js中的Windows命名管道(首选共享内存)
- 28. XML中的重命名节点
- 29. 在hook_node_view的另一个节点内添加节点的内容
- 30. umbraco内容树中的重复节点