2010-03-31 24 views

回答

1

ElggMetadata用於存儲關於實際Elgg實體的信息。因此,如果您創建了一個Car實體並想說出它是什麼顏色,那對ElggMetadata來說就是一個完美的用例。

ElggAnnotion用於向實體添加其他信息(評論,評論等)。因此,在上述汽車實體示例中,您可以允許用戶評論或查看它。這是ElggAnnotation的完美案例。

4

從數據庫的角度看,他們是完全一樣的。它們具有所有相同的字段(id,user_guid,entity_guid等),所以它很有意義,爲什麼它不能立即清楚它們的用途。

我喜歡這樣想起來了:

  • 元==目標(屬性)
  • 註釋==主觀的(意見)

元數據的方式來動態地添加屬性到一個實體。元數據應該描述實體的實際情況 - 戴維關於汽車顏色的例子很好。其他例子是一本書的編號或事件的位置。

實體創建後添加到實體中的任何新信息都可能是註釋。這就是爲什麼評級,喜歡等是註釋而不是元數據的原因 - 「評級」不是實體的屬性,它只是某人對實體質量的看法。

API承載了這種區分。元數據被分配好像它們是實體的屬性。例如:

$event->location = ''; 

註釋沒有等效的縮寫。

0

ElggMetadata是鍵值對之間的鏈接存儲的地方,與任何實體關聯。但實際的鍵和值將被存儲在ElggMetastrings中(遵循EAV模型)。

例如:相當

$user->gender=male; 

相比之下ElggAnnotation店一套嚴格這樣的評論性質的,任何實體的評級

相關問題