17.4.3 Description des tables de documents

17.4.3.1 La table Doc

Toutes les informations des documents sont enregistrées dans les tables héritées de la table doc.

La table doc définie les propriétés des documents ; c'est à dire tout ce qui est commun à tout type de document.

Colonne Type Définition
adate timestamp without time zone Date de dernier accès au document.
allocated integer Identifiant système de l'utilisateur auquel le document est affecté.
archiveid integer Id de l'archive dans laquelle est contenu ce document.
atags text Balises applicatives.
attrids text Liste de l'ensemble des attributs ayant une valeur non nulle (calculé par trigger).
cdate timestamp without time zone Date de création de la révision.
classname text Nom de la classe PHP associée au document (utilisé dans la table docfam uniquement).
comment text Obsolète
confidential integer Indique si le document est confidentiel (>0).
cvid integer Identifiant du document contrôle de vue associé à ce document.
doctype character(1) Type de document.
domainid text pour application offline
dprofid integer Identifiant du profil dynamique associé à ce document.
forumid integer Obsolète
fromid integer Id de la famille d'appartenance.
fulltext tsvector Ensemble des valeurs du document y compris les textes des fichiers indexés.
id integer Identifiant unique du document (issue de la séquence seq_id_doc).
icon text Référence au fichier d'icone du document.
initid integer Id du premier document de la lignée documentaire.
ldapdn text Obsolète
lmodify character(1) Tag de modification.
lockdomainid integer Pour application offline
locked integer Indique l'identifiant système de l'utilisateur qui a verrouillé le document.
name text Nom logique du document.
owner integer Identifiant système de l'utilisateur ayant créé le document.
postitid text Identifiant du document post-it associé.
prelid integer Identifiant du document (dossier) de relation primaire.
profid integer Identifiant du profil de document.
revdate integer Date de révision.
revision integer Numéro d'ordre du document dans sa lignée documentaire.
state text Étape du document.
svalues text Liste des valeurs d'attributs recherchables y compris les textes des fichiers indexés.
title character varying(256) Titre du document.
usefor text Type d'utilisation du document.
values text Liste de l'ensemble des valeurs non nulles en corrélation avec attrids.
version text Libellé de la version : il est vide par défaut.
views integer[] Liste des identifiants de compte qui ont accès au document.
wid integer Identifiant du document cycle de vie associé à ce document.

17.4.3.2 Les tables des documents

Pour chacune des familles enregistrées, une table associée est créée. Cette table est nommée doc<famid><famid> est l'identifiant numérique de la famille. Une même famille peut avoir un nom de table différent sur différente installation suivant l'identifiant qui lui a été attribué au moment de la création. De même si la famille est détruite, une nouvelle table avec un nom différent lui est attribué.

Exemple :

Héritage des tables de documents

Figure 103. Héritage des tables de documents

Les tables de documents sont créées avec le schéma public. Pour chacune des familles, une vue est créée avec le nom logique de la famille en même temps que la table réelle. Toutes les vues de documents sont créées sous le schéma family.

SELECT * FROM public.doc1098;
-- equivalent à
SELECT * FROM family.myfamily;

Important : Ces vues ne sont utilisables qu'en lecture seule. À partir de postgresql 9.3, ces vues sont utilisables en mise à jour.

Note : Les noms des tables en postgresql ne sont pas sensibles à la casse.

La table doc propre ne comprend aucune données.

db# SELECT COUNT(id) FROM ONLY doc ; -- aucun document
 COUNT 
-------
     0
 
db=# SELECT COUNT(id) FROM doc ; -- tous les documents
 COUNT 
-------
 15008

Chacune des tables de documents contient en plus des propriétés héritées de la table doc, une colonne par attributs pouvant contenir une valeur. Cela exclu les attributs de type tab, frame, array, et menu. Le nom de ces colonnes sont les identifiants des attributs. Le type de ces colonnes est fonction du type d'attribut. Le type correspondant en base est indiqué dans chacun des chapitres décrivant les attributs.

Pour plus de détails sur le mécanisme d'héritage de PostgreSQL :

17.4.3.3 Table de recherche générale

La table docread a les mêmes colonnes que la table doc mais elle n'en hérite pas. Cette table contient une réplication de l'ensemble des documents qui sont disséminés dans l'ensemble des tables doc<famid>.

Cette table répliquée a ses propres index globaux et permet dans le cas d'une recherche globale, c'est à dire non liée à une famille particulière, d'être plus rapide.

db=# SELECT id, title FROM doc WHERE id = 1098;
  id  |           title           
------+---------------------------
 1098 | lecteur de Premier espace
(1 ligne)
Temps : 24,690 ms
 
db=# SELECT id, title FROM docread WHERE id = 1098;
  id  |           title           
------+---------------------------
 1098 | lecteur de Premier espace
(1 ligne)
Temps : 1,037 ms

Cette table est maintenue synchronisée avec le contenu des tables doc<famid> par des triggers, et ne doit donc être utilisée qu'en lecture seule. Seules les tables doc<famid> peuvent être utilisées en modification.

17.4.3.4 Indexation des fichiers

Si le moteur de transformation est opérationnel, les contenus des fichiers peuvent être indexés. Un attribut fichier produit trois colonnes dans la table associée à sa famille.

  1. colonne <attrid>
    Contient la référence au fichier : <vaultId>|<mimeType>|<fileName>.
    1. vaultId : Identifiant dans le coffre (table vaultdiskstorage, colonne id_file),
    2. mimeType : type mime du fichier,
    3. fileName : nom du fichier (basename).
  2. colonne <attrid>_txt
    Contient le contenu textuel (type text) du fichier qui a été retourné par le moteur de transformation.
  3. colonne <attrid>_vec
    Contient le contenu vectorisé (type tsvector) de la colonne <attrid>_txt.

17.4.3.5 Colonne de recherche générale.

La colonne svalues contient l'ensemble des valeurs recherchables ainsi que les contenus des colonnes _txt des attributs fichiers. Cette colonne est utilisée pour les recherches générales utilisant des expressions (partie de mot).

La colonne fulltext contient la version vectorisée de svalues. Cette colonne est utilisée pour les recherches globales de mot entier.

Ces deux colonnes sont calculées par trigger. Toutes modifications d'enregistrements sur les tables documentaires déclenchent le recalcul de ces colonnes.

×