diff --git modules/field/field.api.php modules/field/field.api.php
index a701923..ecc9543 100644
--- modules/field/field.api.php
+++ modules/field/field.api.php
@@ -219,7 +219,7 @@ function hook_field_info_alter(&$info) {
  *
  * @return
  *   An associative array with the following keys:
- *   - columns: An array of Schema API column specifications, keyed by column
+ *   - "columns": An array of Schema API column specifications, keyed by column
  *     name. This specifies what comprises a value for a given field. For
  *     example, a value for a number field is simply 'value', while a value for
  *     a formatted text field is the combination of 'value' and 'format'. It is
@@ -227,11 +227,14 @@ function hook_field_info_alter(&$info) {
  *     settings when possible. No assumptions should be made on how storage
  *     engines internally use the original column name to structure their
  *     storage.
- *   - indexes: An array of Schema API indexes definitions. Only columns that
- *     appear in the 'columns' array are allowed. Those indexes will be used as
- *     default indexes. Callers of field_create_field() can specify additional
- *     indexes, or, at their own risk, modify the default indexes specified by
- *     the field-type module. Some storage engines might not support indexes.
+ *   - "indexes": (optional) An array of Schema API indexes definitions. Only
+ *     columns that appear in the 'columns' array are allowed. Those indexes
+ *     will be used as default indexes. Callers of field_create_field() can
+ *     specify additional indexes, or, at their own risk, modify the default
+ *     indexes specified by the field-type module. Some storage engines might
+ *     not support indexes.
+ *   - "foreign keys": (optional) An array of Schema API foreign keys
+ *     definitions.
  */
 function hook_field_schema($field) {
   if ($field['type'] == 'text_long') {
@@ -264,6 +267,12 @@ function hook_field_schema($field) {
     'indexes' => array(
       'format' => array('format'),
     ),
+    'foreign keys' => array(
+      'format' => array(
+        'table' => 'filter_format',
+        'columns' => array('format' => 'format'),
+      ),
+    ),
   );
 }
 
