Modelo de base de datos de un sistema de blog


Les voy a explicar el modelo de base de datos del sistema de blog mas básico y por supuesto muy útil, que también puede servir para otros usos.

El modelo de base de datos de un blog esta basado en el sistema blogelin, cuenta con 4 tablas:

  • category: tabla para guardar las categorías que se relacionaran con los post o artículos
  • post: tabla para guardar los artículos
  • user: tabla para guardar los usuarios que publicaran articulos
  • comment: tabla para guardar los comentarios de los articulos

Como notas adicionales los articulos solo pueden estar relacionados con una categoría.

Modelo entidad relación de un sistema de blog

Este es el diagrama entidad-relación de la base de datos de un sistema de blog.

Link para ver todo el codigo de la base de datos completo: https://github.com/evilnapsis/blogelin/blob/master/schema.sql

Tabla Category

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

La tabla category cuenta con 2 campos:

  • id: la llave primaria auto incremental
  • name: el nombre de la categoria

Tabla User

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

La tabla user cuenta con los siguientes campos:

  • id: llave primaria
  • name: nombre del usuario
  • lastname: apellido del usuario
  • username: nombre de usuario o identificador
  • email: direccion de correo electronico del usuario
  • password: contraseña del usuario
  • status: estado, puede ser 0 = inactivo o 1 = activo
  • kind: el tipo de usuario
  • created_at: la fecha de creación del usuario, normalmente se usa la función NOW()

Tabla post

La tabla post sirve para guardar los artículos

create table post(
	id int not null auto_increment primary key,
	title varchar(255),
	brief varchar(511),
	content text,
	image varchar(255),
	created_at datetime,
	status int default 1,
	user_id int not null,
	category_id int not null,
	foreign key (user_id) references user(id),
	foreign key (category_id) references category(id)
);

La tabla post tiene los siguientes campos:

  • id: la llave primaria
  • title: titulo del articulo
  • brief: contenido corto del articulo
  • content: contenido completo del articulo
  • image: imagen destacada del articulo
  • created_at: fecha de creación del articulo
  • status: estado del articulo, 0 = no publico, 1= publico
  • user_id: id del usuario que escribe el articulo
  • category_id: id de la categoría a la que pertenece el articulo

Tabla comment

La tabla comment funciona para recibir comentario de usuarios fuera del sistema, por lo que no se utiliza el id de usuario, mas bien los datos: nombre y email.

create table comment(
	id int not null auto_increment primary key,
	name varchar(255),
	comment varchar(255),
	email varchar(255),
	post_id int not null,
	created_at datetime,
	status int default 1,
	foreign key (post_id) references post(id)
);
  • id: llave primaria
  • name: nombre de la persona que escribe el comentario
  • comment: comentario de la persona o visitante
  • email: correo electronico del visitante
  • post_id: id o llave primaria del articulo al que hacemos referencia
  • created_at: fecha de creacion del comentario
  • status: estado del comentario, 0= no publico, 1= publico

Leave a comment

3 thoughts on “Modelo de base de datos de un sistema de blog