В чем отличие ElggMetadata и ElggAnnotation в среде Elgg с точки зрения разработчика? - PullRequest
1 голос
/ 31 марта 2010

Я не могу понять разницу.

Ответы [ 4 ]

4 голосов
/ 26 августа 2010

С точки зрения базы данных они точно такие же. Они имеют все одинаковые поля (id, user_guid, entity_guid и т. Д.), Поэтому было бы понятно, почему не сразу понятно, для чего они.

Мне нравится думать об этом так:

  • метаданные == цель (свойство)
  • аннотации == субъективные (мнение)

Метаданные - это способ динамически добавлять свойства к объекту. Метаданные должны описывать сущность такой, какая она есть на самом деле - пример Дэвида о цвете автомобиля был хорош. Другими примерами являются номер книги или место события.

Любая новая информация, добавляемая к сущности после ее создания, должна быть аннотацией. Вот почему рейтинги, лайки и т. Д. Являются аннотациями, а не метаданными - «рейтинг» не является собственностью организации, это просто чье-то мнение о качестве организации.

API подтверждает это различие. Метаданные назначаются так, как если бы они были свойствами объекта. e.g.:

$event->location = '';

Нет эквивалентных сокращений для аннотаций.

1 голос
/ 08 июня 2010

ElggMetadata используется для хранения информации о фактической сущности Elgg. Поэтому, если вы создали сущность Car и хотите сказать, какого она цвета, это было бы идеальным вариантом использования ElggMetadata.

ElggAnnotion используется для добавления дополнительной информации (комментарий, обзор и т. Д.) К сущности. Таким образом, в приведенном выше примере автомобильного объекта вы можете разрешить пользователям комментировать или просматривать его. Это идеальный случай для ElggAnnotation.

0 голосов
/ 29 августа 2012

ElggMetadata - это место, где хранятся ССЫЛКИ между парами ключ-значение, связанные с любым объектом. Но фактический ключ и значения будут сохранены в ElggMetastrings (следуя модели EAV).

Например:

$user->gender=male; 

Сравнительно ElggAnnotation хранит довольно жесткий набор свойств, таких как комментарии, рейтинги любой сущности

0 голосов
/ 29 июня 2010

Ответ Дэвида прямо. Проверьте эти ссылки, если вам нужно больше глубины.

http://docs.elgg.org/wiki/Engine/DataModel/Annotations

http://docs.elgg.org/wiki/Engine/DataModel/Metadata

...