[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Pues eso, al lio con Ayuda :)



He estado repasando mails atrasados del proyecto ayuda y con todo ello
he diseñado un modelo de BD.  No importa que no sea perfecto. Hay mucho
por discutir pero para empezar creo que nos vale. En mi opinión después
de los parones sufridos no es el momento de ser perfeccionistas. 

Desarrollaré una mini aplicación basada en 'admdb' para su uso en local.
Si alguien quiere jugar con ella la última versión está en
http://www.ciberdroide.com/misc/admdb/index.html

Falta por establecer si esto se instalará en algún servidor para su
uso mediante una sesion de ssh, (Sería lo ideal aunque ignoro quien
podría habilitar una cuenta para ello en algún servidor) o por el 
contrario el documentalista lo installará en su ordenador. En este 
segundo caso hay que advertir que se requiere un sistema con una serie 
de requisitos software sencillos de instalar:

Librería ncurses
Librería libpq
Gestor de base de datos Postgres y su entorno de desarrollo (headers).

Para su ejecución se requiere además un paginador, un editor, y un navegador.
Por defecto viene preconfigurado para 'less', 'vi', y 'lynx' aunque esto se
puede cambiar.

La aplicación la desarrollaré en poco tiempo una vez se acepte el modelo
de BD y la aplicación en conjunto ofrecerá lo siguiente:

Menu principal para documentalistas
	Fichas de documentos (Altas/Bajas/Modificaciones/..)
		Descriptores (Altas/Bajas/Modificaciones/..)
		Contribuciones Personales (Altas/Bajas/Modificaciones/..)
		Ejemplar Documento (url) (Altas/Bajas/Modificaciones/..)
	Relaciones entre claves (Altas/Bajas/Modificaciones/..)
	

Los objetivos que se persiguen por orden de importancia son:


1) Empezar de una vez y como sea. Sugiero hacer una lista de documentos
para catalogarlos.

2) Facilitar la entrada de datos a los documentalistas que no tienen
porque aprender nada de BD si no lo desean.

3) Ir almacenando la información de forma que su acceso resulte lo más
flexible posible y permita el desarrollo de futuras herramientas de 
búsqueda.

Conviene ir confeccionando una lista de documentos para ir documentandolos.

Deberán situarse en la misma máquina que la aplicación y organizados
en subdirectorios de forma jerarquica y bien organizada por idioma,
tipo de documento y formato. Inicialmente lo mejor será limitarse al
español y a los formatos de texto y html.


		ES--FAQ--HTML
		 |    `--TXT
		 |--HOWTO--HTML
		 |    `--TXT
		 |--MAN--HTML
		 |    `__TXT
		 :
		 :
 

Esto que propongo es bastante rápido de implementar y vendría a ser
un prototipo perfectamente funcional. Para el futuro y con lo que la
experiencia nos dicte se montaría el sistema con PHP.

La BD salvo alguna modificación de ultima hora (no he probado 
a crear las tablas aun) quedará más o menos como sigue:


-- ########################################################################
-- SERIAL = int4 NOT NULL int4 NOT NULL DEFAULT nextval('clave_seq')
CREATE TABLE documento (
	cl_documento   SERIAL ,
	version		varchar(20),
	niveltecnico	char(1) NOT NULL, --(Novato, Medio, Avanzado, Experto)
	titulo		varchar(80) NOT NULL, -- (Titulo del documento)
	descripcion     varchar(80) NOT NULL, --( Breve Descripcion )
	idioma		varchar(20) NOT NULL, -- (ESPAÑOL/INGLES/...)
	tipodocum       varchar(20) NOT NULL, --(FAQ/HOWTO/INFO/MAN/LIBRO/ARTICULO/RECETA/...)
	tipolicencia	varchar(20), -- (GPL/...)
	grupo_local	varchar(10), --(es,es_AR,es_ES,es_MX,es_PE,es_..., en,en_AU,en_US,en_..., ...)
	fecha_publi	date,
	urls		varchar(500), -- (Lugares para obtener nuevas versiones del documento)
	docs_realtiv	varchar(500), -- (Documentos relacionados con el mismo tema)
	notasdoc	varchar(2000), -- (Anotaciones del documentalista)
	UNIQUE (nombrefichero),
	UNIQUE (md5sum),
	PRIMARY KEY (cl_documento));
	
-- ########################################################################
CREATE TABLE ejemplardocum (	
	documento	int4 NOT NULL  REFERENCES documento
	                               ON UPDATE CASCADE
				       ON DELETE CASCADE, 
	urlfichero	varchar(150) NOT NULL, -- 
	md5sum		varchar(80) NOT NULL, -- (Valor md5 del fichero)
	formatodoc      varchar(10) NOT NULL, -- (HTML/TXT/PS/...)
	PRIMARY KEY (documento, urlfichero));
	
-- ########################################################################
CREATE TABLE contribucion (
	cl_contribucion SERIAL,
	documento	int4 NOT NULL  REFERENCES documento 
	                               ON UPDATE CASCADE
				       ON DELETE CASCADE, 
	nombre		varchar(40) NOT NULL,
	apellidos	varchar(50) NOT NULL,
	email		varchar(50),
	fecha		date,
	tipo_contrib	varchar(20) NOT NULL, -- (AUTOR/EDITOR/TRADUCTOR/MANTENEDIR/DOCUMENTALISTA)
	PRIMARY KEY (cl_contribucion));
	
-- ########################################################################
-- Los pesos de los descriptores serán (2,5, o 8)
-- 2 = Buscar por esta clave puede ayudar algo.
-- 5 = Buscar por esta clave ayudará bastante.
-- 8 = Buscar por esta clave ayudará muchisimo.
CREATE TABLE descriptor (
	literal		varchar(60) NOT NULL,
	documento	int4 NOT NULL  REFERENCES documento
	                               ON UPDATE CASCADE
				       ON DELETE CASCADE, 
	tipodescrit	varchar(20) NOT NULL, --(VERBO/SUSTANTIVO/ADJETIVO/COMPUESTO)
	situacion	char(1), --(FIRME, DUDOSA) Puede ser necesario negociar con otros documentalistas o buscar un sinónimo que ya se use como clave, etc
	peso		int4 NOT NULL, --(2,5,8) 
	PRIMARY KEY (literal, documento));

-- ########################################################################
CREATE TABLE descript_relac (
	literal1	varchar(60) NOT NULL,
	relacion	varchar(20) NOT NULL, --(PREDECESOR/SUCESOR/SINONIMO/..)
	literal2	varchar(60) NOT NULL,
	PRIMARY KEY (literal1, relacion, literal2));
	

Un saludo

Antonio Castro

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
        /\     /\      Ciberdroide Informática (Tienda de Linux)
          \\W//            <<< http://www.ciberdroide.com >>>
	 _|0 0|_                                                    
+-oOOO--(___o___)--OOOo----------------------------------------------------+ 
|  . . . . U U . . . . Antonio Castro Snurmacher  acastro@ciberdroide.com  |  
|  . . . . . . . . . .                                                     | 
+()()()----------()()()----------------------------------------------------+
| *** 1.700 sitios clasificados por temas sobre Linux en ***Donde_Linux*** |
| <<< http://www.ciberdroide.com/misc/donde/dondelinux.html >>>            |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+




Reply to: