Le point sur les arborescences SQL

Le point sur les arborescences SQL - SQL/NoSQL - Programmation

Marsh Posté le 14-08-2007 à 15:34:54    

Bonjour,
 
je suis en train de monter un système de dossiers/fichiers sous sql avec donc des relations pères/fils
 
Je me suis heurter au problème : comment remonter toute l'arborescence d'un fichier ?
 
Après un bon moment à fouiner sur le net, il n'y a apparement que la solution de "Arborescence SQL par intervalles" qui parait réalisable.
 
Seulement, les turoriaux datent et je me demandais s'il existait maintenant une solution plus simple ?
 
Qu'en pensez-vous ? mysql 5 a t-il apporté des nouveautés là dessus ?
 
 :hello:

Reply

Marsh Posté le 14-08-2007 à 15:34:54   

Reply

Marsh Posté le 16-08-2007 à 09:54:08    

Y'a plein de techniques qui existent.
Je cherche le topic où j'avais mis un lien expliquant les différentes techniques (certaines sont proprios, d'autres sont standard).
 
A noter qu'il est absolument préférable d'avoir la toute dernière version de n'importe quel SGBD pour espérer que ça marche.
 
Mise à part Oracle et sa méthode proprio "connect by ... prior ...", les autres SGBD ne supportent l'arborescence généralement que depuis peu, ce qui implique un support parfois aléatoire et des performances médiocres.

Reply

Marsh Posté le 16-08-2007 à 10:05:43    

Voilà :
http://www.sqlservercentral.com/co [...] er2005.asp
 
Il s'agit d'un article pour SQL Server, mais plus généralement, il s'agit de la doc sur l'utilisation des CTE pour faire de la récursivité.
Les CTE sont préconnisées par la norme SQL-1999, donc c'est cette solution que tu as le plus de chances de trouver sous MySQL.

Reply

Marsh Posté le 16-08-2007 à 16:24:41    

Merci, je vais lire ça
 
[edit] Apparement, Mysql ne supporte pas les "KEY REFERENCES"
 
J'ai lu que dans la version 6 il sera possible de lier les clés d'une table. Mais avec la version 5, peut-on exploiter le "Common Table Expressions" ? je ne trouve des articles que sur SQL server (que je ne connais pas, au passage)


Message édité par papanoramix le 16-08-2007 à 16:35:18
Reply

Marsh Posté le 16-08-2007 à 16:40:18    

Ben SQL Server c'est le SGBD de Microsoft.
Tu peux en télécharger la version gratuite ici :
http://msdn2.microsoft.com/fr-fr/express/bb410792.aspx
 
(ça change de MySQL, enfin un SGBD qui tiens la route :D)

Reply

Marsh Posté le 20-08-2007 à 10:16:42    

D'après ce que je lis sur le net, MySQL est plus performant que SQL Server mais il offre plus de possibilités. Et le fait qu'il soit payant ne me permet pas de me pencher sur ce SGDB pour mes développements...
 
A quand la sortie de MySQL 6 ?!

Reply

Marsh Posté le 20-08-2007 à 11:38:48    

1/ MySQL est plus performant que MSSQL... Sur le papier. Parceque quand on voit les tambouilles qu'on doit faire pour cloner le comportement de SQL Server, dans pas mal de cas MySQL est bien inférieur. Genre le coup des arbres... Si tu dois faire toute l'intelligence du parcours de l'arbre en PHP, à grand coup de fonction récursive qui ouvre 100 niveaux d'imbrication et 1 requête pas noeud... Euh... MSSQL Server il te fait la même chose en une requête unique, sans sortir du moteur SQL. Je cherche même pas à faire un bench pour voir qui est vainqueur niveau perfs.
2/ MSSQL Server est GRATUIT. C'est pas parcequ'il existe une version à 8000 € que la version Express c'est de la merde. T'as le droit de t'en servir, y compris à des fin commerciales, la distribuer, etc. Y'a aucune limitation par rapport à MySQL sur ce point. Le seul truc, c'est que tu te limites à de l'hébergement Windows.


Message édité par MagicBuzz le 20-08-2007 à 11:40:34
Reply

Marsh Posté le 22-08-2007 à 13:48:11    

Merci pour ces infos, je vais m'y mettre un de ces jours.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed