Schema

RECU-0284 (Recurso Ficha Técnica)

Descripción

La API Schema permite a los módulos declarar sus tablas de bases de datos en un array estructurado y provee funciones para la creación, eliminación y modificación de tablas, columnas, índices y claves.

Ejemplo de uso

Un ejemplo es el siguiente, aquí tenemos un subconjunto del esquema definido para la tabla de nodos de Drupal. Se muestran cuatro campos (nid, vid, type, and title), donde la clave primaria está en 'nid', la clave única en el campo 'vid' y dos índices uno en el campo 'nid' y otro en el campo 'title'

<?php

$schema['node'] = array(
'fields' => array(
'nid'      => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
'vid'      => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
'type'     => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
'title'    => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
),
'primary key' => array('nid'),
'unique keys' => array(
'vid'     => array('vid')
),
'indexes' => array(
'nid'                 => array('nid'),
'node_title_type'     => array('title', array('type', 4)),
),
);

?>

Ventajas e inconvenientes

El módulo Schema provee de una funcional no soportada por la API Schema del core, añade una funcionalidad relacional sobre el esquema que es muy útil para los desarrolladores de módulos. Actualmente incluye:

  • Documentación de Schema: Muestra la documentación enlazada, explicando para qué es cada tabla y cada campo
  • Generación del Schema: el módulo examina la base de datos y una estructura de datos para todas las tablas que coincidan con la base de datos.
  • Comparación del Schema: El módulo compara la estructura de la base de datos con la estructura del esquema declarado para habilitar los módulos, reportando errores por pérdida o modificación de las tablas

Requisitos e incompatibilidades

Si se usa MYSQL, usar una versión superior a la cinco

Contenidos relacionados

Pautas
Área: Desarrollo » Librerías y Módulos » PHP
Código Título Tipo Carácter
LIBP-0351 Módulos para Drupal Libro de pautas Directriz Recomendada