С точки зрения базы данных они точно такие же. Они имеют все одинаковые поля (id, user_guid, entity_guid и т. Д.), Поэтому было бы понятно, почему не сразу понятно, для чего они.
Мне нравится думать об этом так:
- метаданные == цель (свойство)
- аннотации == субъективные (мнение)
Метаданные - это способ динамически добавлять свойства к объекту. Метаданные должны описывать сущность такой, какая она есть на самом деле - пример Дэвида о цвете автомобиля был хорош. Другими примерами являются номер книги или место события.
Любая новая информация, добавляемая к сущности после ее создания, должна быть аннотацией. Вот почему рейтинги, лайки и т. Д. Являются аннотациями, а не метаданными - «рейтинг» не является собственностью организации, это просто чье-то мнение о качестве организации.
API подтверждает это различие. Метаданные назначаются так, как если бы они были свойствами объекта. e.g.:
$event->location = '';
Нет эквивалентных сокращений для аннотаций.