您在這裡

用內容類型,還是分類?(cck node type or taxonomy?)

jimmy's 的頭像
jimmy 在 2006-12-03 (周日) 17:20 發表

苦勞網的剪報資料,目前用一種node type打死,就是無論新聞剪報、專欄文章,全部都用同樣的介面來做。這是苦勞網以前習慣的方式,我想也是因為程式上的限制,導致他們得要這樣做。

但是用同一個node type來做,有許多限制,譬如說今天想要讓某種權限的人,可以做專欄文章,另外某種權限的人,只能做新聞剪報,而只有某種權限的人,都擁有這些權限。這樣用同樣的node type就無法輕易達到,也失去了這種彈性,等於增加後續程式開發的負擔。

還有的限制為,如果今天新聞剪報要用一種樣式呈現,而專欄文章想要用另一種樣式呈現,但是用同樣的node type,也會讓程式的負擔增加。因為在Drupal的theme engin phptemplate裡頭,可以輕易的為不同的node type來定義不同的顯示樣式,但無法為不同的term來做不同的顯示樣式。

如此說來,苦勞網目前想把移民工資料庫整合進苦勞網的資料庫裡頭,這個移民工資料庫的需求,就是需要有不同的輸入介面、不同的文章顯示格式,甚至是不同的主題(theme)。這個時候就很明確,用分類要達到這種需求可以說是不可能。因此新增node type是必然的。

回到前面的話題,到底苦勞網本身的資料應該怎麼分?用node type和taxonomy的時機不同,我分述如下:

。如果這個項目是不同場合下都可以用,各種不同類型的內容都可以用(如drupal 4.6,4.7,5.0)
。如果這個項目必須常常新增子類別,可能站上將會擁有超過100個子類別(tags)
。如果這個項目,必須要常常根據子分類來呈現(如所有跟drupal 4.6的文章)
那無庸置疑,就用taoxnomy

。如果這個項目擁有特殊的輸入格式(如剪報、專欄)
。如果這個項目雖然輸入格式很像,但後續利用牽扯到權限的限制(如story、page)
。如果這個項目擁有大幅度呈現上得不同(如forum、story)
那用新的node type,會讓之後進行的更順利。

順帶一提,設計和架構,是最重要的。不好的架構,只會累積後續利用的困擾,並且減低彈性。苦勞網的內容類型架構還需要調整吧。

回應