Разница между таблицами field_data и field_revision?

11

У меня много пользовательских функций; Я просто хочу убедиться, что я делаю это правильно.
Если мне нужна самая последняя версия - живая версия - узла, я иду к field_data_field_xyzтаблице, верно?

Я понимаю, что field_revision_field_xyzсохраняет все старые версии, верно?

Майк
источник

Ответы:

12

Это правильно: работа с полем хранилища SQL .

Таблицы базы данных:

  • {field_data_ [field_name]} Стандартное хранилище данных для поля.
  • {field_revision_ [field_name]} Стандартное хранилище ревизий для поля.
tostinni
источник
1
Не очень рекомендуется запрашивать эти таблицы напрямую, но я сделаю это во многих проектах. Взгляните на EntityFieldQuery и этот ответ .
Тостинни
Да, было множество мест, где Представления просто не могли бы это сократить. Что является самым большим недостатком при непосредственном обращении к таблицам?
Майк
В D6 это поле могло меняться от табуляции content_type_*к собственной таблице, поэтому вам лучше использовать API для построения запроса. В D7 этого больше не происходит, так что лучше;)
tostinni
1
Этот ответ не на 100% ясен. Если мне нужно было написать SQL, чтобы иметь возможность экспортировать самые последние данные, могу ли я просто игнорировать field_revision_field_*таблицы или мне нужно как-то включить их в мой экспорт, и если да, то как?
MikeSchinkel