更好的数据结构设计

时间:2010-05-16 09:40:33

标签: database data-structures recursion

目前在我的应用程序中,我有一个表给我带来了一些麻烦。手头的问题是我有一个映射到该表的值对象。当数据作为值对象数组返回给我时,我必须循环遍历此数组并通过将ParentID与父ObjectID匹配来开始我的递归。

列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

1 个答案:

答案 0 :(得分:2)

您可以使用嵌套集模型。请在此处查看非常好的解释:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/