Actuellement dans mon application, j'ai une seule table qui me pose un problème. Le problème est que j'ai un objet valeur qui est mappé à cette table. Lorsque les données me sont renvoyées sous la forme d'un tableau d'objets valeur, je dois ensuite parcourir ce tableau et commencer ma récurrence en faisant correspondre l'ID Parent à l'ID Object parent.Meilleure conception de structure de données
La colonne ParentID est null (agit comme un parent) ou contient la valeur d'un ObjectID.
Je sais qu'il doit y avoir une meilleure façon de créer cette structure de données afin que je n'ai pas besoin de faire de boucles récursives pour faire correspondre les ParentID avec leurs ObjectID.
Toute aide avec ceci est grandement appréciée.
Voici le tableau en forme décrire:
+----------------+------------------+------+-----+---------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+------------------+------+-----+---------------------+-----------------------------+
| ObjectID | int(11) unsigned | NO | PRI | NULL | auto_increment |
| ObjectHeight | decimal(6,2) | NO | | NULL | |
| ObjectWidth | decimal(6,2) | NO | | NULL | |
| ObjectX | decimal(6,2) | NO | | NULL | |
| ObjectY | decimal(6,2) | NO | | NULL | |
| ObjectLabel | varchar(255) | NO | | NULL | |
| TemplateID | int(11) unsigned | NO | MUL | NULL | |
| ObjectTypeID | int(11) unsigned | NO | MUL | NULL | |
| ParentID | int(11) unsigned | YES | MUL | NULL | |
| CreationDate | datetime | YES | | 0000-00-00 00:00:00 | |
| LastModifyDate | timestamp | YES | | NULL | on update CURRENT_TIMESTAMP |
+----------------+------------------+------+-----+---------------------+-----------------------------+e
Utilisez-vous SQL Server? Si tel est le cas, SQL Server 2005 dispose de structures permettant de traiter les structures de données hiérarchiques. Vous pouvez créer une expression de table commune à interroger d'une manière récursive. – RMorrisey
Je n'utilise pas SQL Server, j'ai déjà utilisé des CTE auparavant. J'utilise MySQL. – Tempname