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: