目前在我的应用程序中,我有一张表给我一些麻烦。手头的问题是我有一个映射到这个表的值对象。当数据作为值对象数组返回给我时,我必须循环访问该数组,并通过将ParentID与父对象ID进行匹配来开始递归。更好的数据结构设计
ParentID列可以是null(作为父对象),也可以是ObjectID的值。
我知道必须有更好的方法来创建这个数据结构,以便我不必执行递归循环来匹配ParentID和ObjectID的。
任何帮助,这是非常感谢。
下面是表中描述形式:
+----------------+------------------+------+-----+---------------------+-----------------------------+
| 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
您是否使用SQL Server?如果是这样的话,SQL Server 2005已经构建了处理分层数据结构。您可以创建一个公共表达式以递归方式进行查询。 – RMorrisey 2010-05-16 09:49:26
我没有使用SQL Server,我之前使用过CTE。我正在使用MySQL。 – Tempname 2010-05-16 09:52:16