MySql数据库表中的树数据
我有一个使用邻接列表模型进行层次结构存储的表。 因此,本表中最相关的列是:
ItemId // is auto_increment
ParentId
Level
ParentTrail // in the form of "parentId/../parentId/itemId"
  那么我在插入tigger之前创建了一个,填充列Level和ParentTrail 。  由于最后一列还包含当前项目的ID,所以我必须在触发器中使用一个技巧,因为auto_increment列在before insert触发器中不可用。  所以我从information_schema.tables表中获取该值。 
  所有工作都很好,直到我尝试编写更新触发器,当项目更改其父项( ParentId已更改)时,该更新触发器将更新我的项目及其后代。  但是我无法在更新触发器中更新我的表格。  我所能做的就是改变当前记录的值,但不改变其他值。 
我可以为分层结构数据使用单独的表格,但这意味着我还必须创建一个将这两个表格(1:1关系)结合在一起的视图,我想尽量避免这种情况。
  有没有办法让所有这些在同一个表中,以便这些字段( Level和ParetTrail )使用触发器自动设置/更新自己? 
这听起来像是可能的,但它会涉及一些重字符串匹配等。不想挖掘自己。
如果您愿意稍微更改数据库模型并实现嵌套集(向下滚动页面),则可以通过触发器更新左右值来轻松完成此操作。
链接地址: http://www.djcxy.com/p/16785.html上一篇: Tree data in MySql database table
下一篇: What datatype to use when storing latitude and longitude data in SQL databases?
