Anatomia de un Blog

0

Como muchos ya saben un blog es una especie de bitácora en linea en la que se publican noticias, novedades, artículos y muchas cosas.

A veces como desarrolladores tenemos la tarea de crear un blog, a veces los clientes quieren mas, aveces menos, pero hay cuestiones básicas que debe tener todo blog, al final de este post incluiré el modelo de base de datos de este blog.

Básico

A continuación la lista de cosas que debe tener un blog.

Componentes de Datos

  • Administradores / Autores
  • Artículos
  • Imágenes
  • Categorías
  • Etiquetas
  • Comentarios

Funcionamiento

  • Búsqueda
  • Paginacion
  • Envio de Emails
  • Seguridad

Componentes de Datos

Los componentes de datos abren paso a las entidades de la base de datos.

Administradores/ Autores

Los administradores y autores son quienes mantienen el blog, crean contenido, responden comentarios, etc. Los administradores pueden dar de alta o baja a los autores, mientras que los autores solo pueden crear o modificar contenido.

Articulos

La artículos son la moneda en los blogs de los articulos se debe almacenar básicamente : titulo, descripción corta, contenido, usuario y fecha de creación, en los listados los artículos siempre se muestran en orden cronológico invertido, es decir los mas recientes primero.

Imágenes

El sistema de gestión del blog debe tener mecanismos fáciles para subir y administrar imágenes.

Categorías

Las categorías son entidades con las que se pueden diferenciar contextos entre los artículos y facilitar al usuario encontrar artículos que se refieran al mismo contexto, en el caso de este blog pueden buscar todos los artículos referentes a desarrollo, programación, ….

Etiquetas

Las etiquetas tienen un funcionamiento similar a las categorías, pero las etiquetas son mas variadas, un articulo puede estar asignado a una categoría, pero puede tener muchas etiquetas, las etiquetas son palabras claves para facilitar las búsquedas y relaciones con otros artículos.

Comentarios

Los comentarios son manejados por los usuarios que visitan el blog, ellos pueden expresarse en un articulo mediante comentarios, un comentario debe contar con : nombre, email, asunto, mensaje. Y se pueden mostrar en la pagina del post, pero antes debe ser aprobado por el autor o administrador.

Funcionamiento

Los componentes de funcionamiento le dan al visitante herramientas para agilizar la interacción con el blog y los autores, también asegurar la seguridad de las transacciones.

Búsqueda

Tanto los visitantes como los autores deben contar con herramientas de busqueda, sobre todo cuando el sitio tiene bastante contenido.

Paginacion

La paginacion ayuda en el proceso de carga de artículos, es decir si tienes 100 artículos en tu blog , al entrar al blog no ves directamente los 100 artículos, en lugar de eso muestras 10 artículos por pagina y le das al usuario la opción de cambiar de pagina para ver los artículos anteriores.

Envio de mails

Cuando el visitante envía comentarios es útil notificar al autor del articulo que tiene un comentario, también cuando el autor responde el comentario se debe enviar una notificación a quien envió el comentario.

Seguridad

En cuanto a seguridad hay varios aspectos a considerar, desde el punto de vista de los autores, ellos pueden modificar únicamente sus artículos y no podrán modificar los de ningún otro, lo mismo pasa con los comentarios.

Desde el usuario se debe utilizar captcha en los comentarios para asegurar que los comentarios no son enviados por bots.

Modelo de base de datos

Tal y como escribí al principio, les dejo el modelo de base de datos que utilizo actualmente en este blog.

create table user(
id int not null auto_increment primary key,
name varchar(50) not null,
lastname varchar(50) not null,
username varchar(50),
email varchar(255) not null,
password varchar(60) not null,
image varchar(255),
is_active boolean not null default 1,
is_admin boolean not null default 0,
created_at datetime not null
);

insert into user (name,email,password,is_admin,created_at) value ("Agustin","evilnapsis@gmail.com","96f960d318379175afcc47a9ed670bc7958e4f2e",1,NOW());

create table category(
id int not null auto_increment primary key,
name varchar(50) not null
);

insert into category (name) value("Develop");
insert into category (name) value("Programming");
insert into category (name) value("Desgin");
insert into category (name) value("Marketing");

create table post (
id int not null auto_increment primary key,
url varchar(200) not null,
title varchar(200) not null,
brief varchar(500) not null,
content text not null,
image varchar(255),
is_public boolean not null default 0,
created_at datetime not null,
user_id int not null,
category_id int not null,
foreign key(category_id) references category(id),
foreign key(user_id) references user(id)
);

create table tag(
id int not null auto_increment primary key,
name varchar(50) not null,
created_at datetime not null
);

create table post_tag (
post_id int not null,
tag_id int not null,
foreign key(post_id) references post(id),
foreign key(tag_id) references tag(id)
);

create table message (
id int not null auto_increment primary key,
name varchar(200) ,
email varchar(200) ,
subject varchar(200) ,
message varchar(200) ,
kind int not null,
is_public boolean not null default 0,
created_at datetime not null,
post_id int ,
message_id int,
foreign key(message_id) references category(id),
foreign key(post_id) references post(id)
);

LEAVE A REPLY

Time limit is exhausted. Please reload CAPTCHA.