|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Ingé. Info. Inscription : janvier 2008 Messages : 338 ![]() |
Salut, simple question si jamais quelqu'un s'est confronté à la problématique,
je suis entrain de modéliser ma base de donner pour accueillir un systeme de fichier (dossier/fichier) j'ai deux possibilité qui s'offrent à moi, la première en mettant un champ "profondeur" du genre 1.2.1,1.2.2 pour les tables fichier ou dossier. La seconde serait de mettre dans ce champ plutot le "parent" avec une clef étrangère. D'après vous, qu'elle serait la meilleure solution ? et si vous avez testé les deux, qu'elle sont les avantages inconvénients de chacun et leurs limites ? Merci d'avance.
__________________
Memento Quia Pulvis Es, Et In Pulverem ReverteriS |
|
|
00
|
|
|
#2 |
![]() ![]() |
Voir l'article de SQLPro sur la modélisation des arbres par représentation intervallaire.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
10
|
|
|
#3 |
|
Membre confirmé
![]() Ingé. Info. Inscription : janvier 2008 Messages : 338 ![]() |
Merci pour le lien, c'est très intéressant, mais malheureusement mon appli ne sera pas maintenue par mes soins, il faut que je laisse un peu de trivialité dans le développement au cas ou.
Je pense m'orienter vers les foreign key, qui me permettront de gérer les suppressions récursive et le mode avec "1.2.1" de toute façon après suppression d'un fichier demanderai trop de traitement pour remettre les indexes à jour. Si vous avez d'autres remarques je suis preneur. Je vais simplement ajouter un champ qui contiendra la reférence à l'id du parent. et 0 pour la racine . Ensuite avec un inner join et l'id du dossier actuel, j'obtiendrai tout ses fils dossier(s)/fichier(s)
__________________
Memento Quia Pulvis Es, Et In Pulverem ReverteriS |
|
|
10
|
|
|
#4 |
![]() ![]() |
À condition que ton SGBD supporte les fonctions récursives, sinon tu n'auras que l'étage inférieur.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
10
|
|
|
#5 |
|
Membre confirmé
![]() Ingé. Info. Inscription : janvier 2008 Messages : 338 ![]() |
oui, j'ai trop de contraintes de programmation avec cette méthode.
J'ai opté pour l'intervallaire, j'ai bien saisi le concept c'est parfait et beaucoup plus rapide.
__________________
Memento Quia Pulvis Es, Et In Pulverem ReverteriS |
|
|
00
|
|
|
#6 |
|
Membre confirmé
![]() Ingé. Info. Inscription : janvier 2008 Messages : 338 ![]() |
Je voudrais poser une autre question, avec la modélisation intervallaire, si par exemple deux utilisateur insèrent un objet ( et donc doivent modifier l'ensemble des indices intervallaires) cela peut-il poser une problème ..?
__________________
Memento Quia Pulvis Es, Et In Pulverem ReverteriS |
|
|
00
|
|
|
#7 |
![]() ![]() |
En principe, l'insertion dans une table bloque la table pour toute autre insertion, le temps que la première soit faite.
Dans le cas d'une insertion dans un arbre intervallaire, je n'ai plus l'article sous les yeux mais il me semble que cela se fait par procédure ou trigger non ? Il faut donc un blocage de la table pendant l'exécution de l'outil qui insère.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#8 | |
![]() ![]() |
Citation:
__________________
Email : http://scr.im/waldar |
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() Ingé. Info. Inscription : janvier 2008 Messages : 338 ![]() |
Je veux bien que tu en dises un peu plus alors Waldar. Merci d'avance
__________________
Memento Quia Pulvis Es, Et In Pulverem ReverteriS |
|
|
00
|
|
|
#10 |
![]() ![]() |
Les insertions ne verrouillent pas toute la table, juste les lignes insérées.
Les verrous des mises à jour sont complexes : soit toute la table, soit la ligne voire uniquement la colonne modifiée, c'est selon la requête et le SGBD.
__________________
Email : http://scr.im/waldar |
|
00
|
Copyright © 2000-2012 - www.developpez.com