2010-06-02 59 views
1

什麼是在使用JCR的wcm中組織文件的正確方法。假設文件總數超過100,000個文件,總文件大小約爲50-70GB。 是否更好地組織由fie類型的文件(並創建子目錄進一步按某些類別對文件進行分組)在jcr存儲庫中組織文件的正確方法

有什麼優勢。在使用查詢API,維護或其他功能時它有什麼區別嗎?

Proposal 1: 
--shared 
------images 
------pdf 
------movies 
--location1 
------images 
------pdf 
------movies 
--location2 
------images 
------pdf 
------movies 

Proposal 2: 
--pdf 
-------shared 
-------location1 
-------location2 
--images 
--------shared 
--------location1 
--------location2 
.. etc 

回答

1

無論你做什麼,請確保你最終沒有超過1000個子節點在任何給定的節點下。 就像在任何(真實)文件系統中一樣,當您想列出包含大量文件/子文件夾的文件夾時,可能需要一些時間。 默認情況下,Jackrabbit 2.x將散列用戶空間。 即:

/users/s/sa/sandra 
/users/s/si/simong 
... 

我會親自去爲你的第一個建議,因爲它更有意義。 我們有一個web應用程序,其中所有的用戶都可以上傳/刪除/修改JCR的檔案並沒有這樣說:

/_users/s/si/simon/public 
/_users/s/si/simon/public/My Pictures 
/_users/s/si/simon/public/My Pictures/2010/06/Trip to the US 
/_users/s/si/simon/public/My Pictures/2010/06/Trip to the US/DC1001.jpg 
/_users/s/si/simon/private/account_details.txt 
... 

我們鬆散以下回家的路上,夾在類UNIX系統中完成的。 我們嘗試散列所有我們(合理)可以做的事情。像例如用戶空間(/ S/SI/simong),而且還搞什麼消息:

/_users/s/si/simong/messages/2009/12/25/ab34ed87dee 
/_users/s/si/simong/messages/2010/03/12/e4f1de3cd48 
... 

但是它是由個人用戶不具有給定文件夾更多的則1000個的子文件(我們做的警告他們雖然。) 這樣做也給你一個很好的鍛鍊訪問控制的好處。 ie:〜/ private下的everthing只能由當前用戶讀寫,〜/ public是每個人都可讀的。

2

在此請看:d avid's Model: A guide for content modeling

一些亮點:

  • 數據首先,結構以後。也許。
  • 驅動內容層次結構,不要讓它發生。
  • 工作區用於clone(),merge()和update()。
  • 小心同名兄弟姐妹。
  • 參考文獻被認爲是有害的。
  • 文件是文件。
  • 身份證是邪惡的。