1

我无法理解其中的区别。

4

3 回答 3

4

从数据库的角度来看,它们完全相同。它们具有所有相同的字段(id、user_guid、entity_guid 等),因此为什么不能立即清楚它们的用途是有道理的。

我喜欢这样想:

  • 元数据 == 目标(属性)
  • 注释 == 主观(意见)

元数据是一种向实体动态添加属性的方法。元数据应该描述实体的实际情况——大卫关于汽车颜色的例子很好。其他示例是一本书的 isbn 编号,或事件的位置。

创建实体后添加到实体的任何新信息都应该是注释。这就是为什么评级、喜欢等是注释而不是元数据的原因——“评级”不是实体的属性,它只是某人对实体质量的看法。

API 体现了这一区别。元数据的分配就像它们是实体的属性一样。例如:

$event->location = '';

注释没有等效的简写。

于 2010-08-26T05:58:37.473 回答
1

ElggMetadata 用于存储有关实际 Elgg 实体的信息。因此,如果您创建了一个 Car 实体并想说明它是什么颜色,那将是 ElggMetadata 的完美用例。

ElggAnnotion 用于向实体添加附加信息(评论、评论等)。因此,在上面的汽车实体示例中,您可以允许用户评论或查看它。这是 ElggAnnotation 的完美案例。

于 2010-06-08T06:38:45.427 回答
0

ElggMetadata 是键值对之间的 LINK 存储位置,与任何实体相关联。但是实际的键和值将存储在 ElggMetastrings 中(遵循 EAV 模型)。

例如:

$user->gender=male; 

相比之下,ElggAnnotation 存储了一组相当严格的属性,如评论、任何实体的评级

于 2012-08-29T09:44:10.543 回答