4.1. Antes de comenzar

En los ejemplos de este capítulo se crea un sistema para gestionar artículos (como por ejemplo los artículos de un blog). A continuación se muestra el esquema de la base de datos, que está formado por cinco tablas: articulo, autor, categoria, etiqueta y articulo_etiqueta.

Listado 4-1 - Esquema de la base de datos

// config/schema.yml
propel:
  articulo:
    id:                ~
    titulo:            { type: varchar(255), required: true }
    slug:              { type: varchar(255), required: true }
    contenido:         longvarchar
    estado:            varchar(255)
    autor_id:          { type: integer, required: true, foreignTable: autor, foreignReference: id, onDelete: cascade }
    categoria_id:      { type: integer, required: false, foreignTable: categoria, foreignReference: id, onDelete: setnull }
    fecha_publicacion: timestamp
    created_at:        ~
    updated_at:        ~
    _uniques:
      unique_slug:     [slug]
 
  autor:
    id:                ~
    nombre:            varchar(20)
    apellidos:         varchar(20)
    email:             { type: varchar(255), required: true }
    activo:            boolean
 
  categoria:
    id:                ~
    nombre:            { type: varchar(255), required: true }
 
  etiqueta:
    id:                ~
    nombre:            { type: varchar(255), required: true }
 
  articulo_etiqueta:
    articulo_id:       { type: integer, foreignTable: articulo, foreignReference: id, primaryKey: true, onDelete: cascade }
    etiqueta_id:       { type: integer, foreignTable: etiqueta, foreignReference: id, primaryKey: true, onDelete: cascade }

Las relaciones entre las tablas son las siguientes:

  • Relación 1-n entre las tablas articulo y autor: cada artículo está escrito por uno y sólo un autor.
  • Relación 1-n entre las tablas articulo y categoria: cada artículo está asociado a cero o una categoría.
  • Relación n-n entre las tablas articulo y etiqueta.
Puedes sugerir, comentar, criticar e informar de errores en contacto (arroba) librosweb.es
« Anterior
Capítulo 4. Integración con Propel
Siguiente »
4.2. Generando las clases del formulario
Los contenidos originales de este sitio están bajo una licencia de Creative Commons. Las traducciones disponen cada una de su propia licencia.