Evilnapsis

Programming, Hacking and More

Databases

Modelo de Base de datos para un Sistema de Curriculum Vitae

El siguiente modelo e base de datos es para un sistema de Curriculum Vitae, como saben el CV sirve para mostrar los datos de una persona que esta buscando empleo.

Los datos que se muestran en el curriculum vitae son:

  • Nombre de la persona
  • Datos de contacto
  • Datos o titulo de la profesion que se ejerce
  • Datos de los trabajos anteriores
  • Datps de cursos extra o certificaciones, etc
  • Habilidades extra con su porcentaje de dominio
  • Lenguajes que habla con su porcentaje de dominio

A continuación mostramos un ejemplo de un curriculum vitae.

Ahora vamos a empezar a modelar todos estos datos en una base de datos en la que podamos agregar todos estos datos e informacion.

Base de datos de Curriculum Vitae

La base de datos esta pensada para múltiples usuarios, aunque también puede ser usada por una persona.

Las tablas de la base de datos son las siguientes.

Tabla User

La tabla user contiene los datos de acceso del usuario y los datos de contacto.

create table user(
	id int not null auto_increment primary key,
	bio varchar(255),
	title varchar(50),
	name varchar(50),
	lastname varchar(50),
	email varchar(255),
	email_public varchar(255),
	password varchar(60),
	phone varchar(255),
	phone_public varchar(255),
	address_public varchar(255),
	website varchar(255),
	image varchar(255),
	date_of_birth date,
	status int default 1,
	kind int default 1,
	created_at datetime
);

Contiene los datos importantes del usuario.

  • Name: es el nombre del usuario
  • Bio: es la biografia o explicacion breve sobre la persona del curriculum vitae.
  • Title: Se va a usar para el titulo o la profesion de la persona
  • Lastname: Para los apellidos
  • email: El correo electronico para iniciar sesion
  • Email_public: el correo electrónico que se va a mostrar
  • password: El password que se va a usar para iniciar sesion.
  • Phone: El numero de telefono este se mantendrá privado
  • Phone_public: El numero de teléfono que se va a mostrar
  • Address_public: La dirección de la persona que se va mostrar
  • website: el sitio web que se quiera mostrar
  • image: la imagen de perfil del usuario que se va a mostrar
  • date_of_birth: La fecha de nacimiento de la persona para calcular su edad.
  • status : El status del usuario
  • kind: el tipo de usuario
  • created_at: La fecha en que se registra el usuario al sistema.

Tabla Educacion

La tabla education contiene los datos de educacion, primaria, secundaria, preparatoria , universidad y todo lo que la persona quiera publicar en su curriculum vitae.

create table education(
	id int not null auto_increment primary key,
	year_start int,
	year_end int,
	school varchar(255),
	description varchar(512),
	user_id int not null,
	foreign key (user_id) references user(id)
);

Contiene los siguientes campos:

  • year_start: El año de inicio
  • year_end: El año de finalizacion
  • school: El nombre de la escuela donde estudio
  • description: Descripcion sobre lo que estudio
  • user_id: El id del usuario al que pertenecen los datos

Tabla Work

La tabla work contiene los datos de los empleos anteriores que ha tenido la persona para su curriculum vitae.

create table work(
	id int not null auto_increment primary key,
	year_start int,
	year_end int,
	company varchar(255),
	description varchar(512),
	user_id int not null,
	foreign key (user_id) references user(id)
);

Contiene los siguientes campos:

  • year_start: El año de inicio
  • year_end: El año de finalizacion
  • company: El nombre de la empresa donde trabajo
  • description: Descripcion sobre el puesto de trabajo
  • user_id: El id del usuario al que pertenecen los datos

Tabla Extra

La tabla Extra se va a usar para los cursos extra, certificaciones o algun otro estudio de la persona.

create table extra( 
	id int not null auto_increment primary key,
	year_start int,
	year_end int,
	extra varchar(255),
	description varchar(512),
	user_id int not null,
	foreign key (user_id) references user(id)
);

Contiene los siguientes campos:

  • year_start: El año de inicio
  • year_end: El año de finalizacion
  • extra: El nombre del curso extra
  • description: Descripcion sobre el curso extra
  • user_id: El id del usuario al que pertenecen los datos

Tabla Skill

La tabla skill contiene los datos sobre las habilidades extra de la persona para su curriculum vitae.

create table skill( 
	id int not null auto_increment primary key,
	skill varchar(255),
	description varchar(512),
	percent int,
	user_id int not null,
	foreign key (user_id) references user(id)
);

Contiene los siguientes campos:

  • skill: El nombre de la habilidad
  • description: Descripcion sobre la habilidad
  • percent: Es el porcentaje de dominio de la habilidad
  • user_id: El id del usuario al que pertenecen los datos

Tabla lang

La tabla lang contiene el dominio de los lenguajes por ejemplo ingles, chino, ajpones, etc asi como el nivel de porcentaje que domina.

create table lang( 
	id int not null auto_increment primary key,
	language varchar(255),
	description varchar(512),
	percent int,
	user_id int not null,
	foreign key (user_id) references user(id)
);

Diagrama de la base de datos

A continuacion el diagrama de la base de datos.

En el se puede apreciar las tablas los campos y las relaciones.

Para el diagrama fue usado el programa MySQL Workbench.

Conclusion

Espero este modelo les ayude si tienen pensado hacer un proyecto o sistema para curriculums vitaes.

Cualquier duda que tengan me pueden dejar un comentario o enviarme un mensaje a los datos que estan en mi pagina de contacto.

Saludos Roboticos.

Agustin Ramos

Desarrollador de Software

Leave a Reply