【问题标题】:What's the difference ElggMetadata and ElggAnnotation in Elgg framework from a developer viewpoint?从开发人员的角度来看,Elgg 框架中的 ElggMetadata 和 ElggAnnotation 有什么区别?
【发布时间】:2010-03-31 01:25:19
【问题描述】:

我无法理解其中的区别。

【问题讨论】:

    标签: php frameworks social-networking elgg


    【解决方案1】:

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

    我喜欢这样想:

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

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

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

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

    $event->location = '';
    

    注释没有等效的简写。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        例如:

        $user->gender=male; 
        

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-22
          • 1970-01-01
          • 1970-01-01
          • 2010-11-10
          • 1970-01-01
          • 1970-01-01
          • 2011-01-17
          • 1970-01-01
          相关资源
          最近更新 更多