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>
où <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 :
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.
-
- colonne
<attrid>
- Contient la référence au fichier :
<vaultId>|<mimeType>|<fileName>
.
- vaultId : Identifiant dans le coffre (table
vaultdiskstorage
, colonneid_file
), - mimeType : type mime du fichier,
- fileName : nom du fichier (basename).
- colonne
- colonne
<attrid>_txt
- Contient le contenu textuel (type
text
) du fichier qui a été retourné par le moteur de transformation.
- colonne
- colonne
<attrid>_vec
- Contient le contenu vectorisé (type
tsvector
) de la colonne<attrid>_txt
.
- colonne
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.