目前在我的應用程序中,我有一張表給我一些麻煩。手頭的問題是我有一個映射到這個表的值對象。當數據作爲值對象數組返回給我時,我必須循環訪問該數組,並通過將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