This is an old revision of the document!
Les specifs complète (lors de l'initialisation de la fonctionnalité !) sont visibles sur le Bloc Note de RedMine
Permettre d'uploader des fichiers (autres que les raws) et de sauvegarder un minimum d'information dans la BD. Les fichiers uploadés devront être attachés à une entité (Etude, Echantillon, Programme, …)
Modification de la table attached_file défini dans la BD. Lorsque l'on veut associer cette table à un objet de la BD, il fallait créer une autre table (study_attached_file / sample_attached_file) qui gérait le lien.
L'idée est de conserver cette table attached_file mais de n'avoir qu'une autre table qui gère le lien entre attached_file et l'objet d'appartenance du fichier. Cette seconde table (file_link) a donc un champ(clé étrangère) non nulle vers attached_file et d'autre champs permettant de retrouver l'objet lié: - le champs attached_file n'est pas UNIQUE. Par conséquent, un fichier peut être rattaché à plusieurs entités et donc, par exemple, un scan de gel peut être rattaché à plusieurs échantillons. De plus, cette règle permet d'intégrer les acquisition_result dans ce schéma. En effet, la table acquisition_result est supprimé et les raw files sont référencés via les tables attached_file et file_link qui référence l'acquisition associée. - le champs associated_entity : nom de la table de l'objet associé au fichier - le champs id_FK utilisé pour référencer l'élément de la table associated_entity si sa clé primaire est de type int (cas de study, project, …) - le champs name_FK utilisé pour référencer l'élément de la table associated_entity si sa clé primaire est de type varchar (cas de sample,…)
Les fichiers associés peuvent être de tout type (rapport client, résultat d'identification, mail…), afin d'identifier le contenu des fichiers, un ou plusieurs tags peuvent être référencés. Un attribut index est également ajouté à la table file_link (non représenté ici) afin d'ordonner les tags !
Si les informations conservées au niveau des tables attached_file et, surtout, de file_link ne sont pas très lisible, le mapping hibernate utilisé en fonction de ces règles permet d'obtenir la hiérarchie de classes suivante: