Drupal 7 Node --> Fields Mapping In Database
I am trying to figure out how nodes are mapped back to the fields they contain for learning purposes. How is thi开发者_JAVA技巧s done?
In Drupal 7 you have entities and fields; fields are attached to entities. A node is an implementation of an entity (the node module implements hook_entity_info()
and other such hooks) so it can have fields.
All field/entity relational data is stored in the tables field_data_field_x
and field_revision_field_x
or similar (the latter potentially storing revisions of field data if node revisions are enabled).
The entity_id
column in those tables is the node's ID, and the bundle
is the node's content type. The revision_id
is the revision ID of the node, again only really useful if node revisions are enabled.
UPDATE
In Drupal terminology a content type is a bundle
and bundle
s are attached to entities (in this case the node
entity). When you create a new content type it gets stored in the node_type
table, and when the caches are cleared (which invokes hook_entity_info
on all modules) the node_entity_info()
function builds up a list of bundles from the content types (have a look at the bit in that function that starts foreach (node_type_get_names() as $type => $name) {
, node_type_get_names
gets a list of all content types).
As discussed above fields can be attached to entities, so fields can be attached to nodes with a delta (if you like) of bundle
.
In D7, for my case field_config_instance table provided me the required info.
精彩评论