我当前的应用程序是在SQL Server 2008
JAVA
Hibernate
HierarchyId
中的n-Level
服务器中构建的,我在数据库中使用了SQL Server 2008
数据类型作为部门层次结构。
我编写了SQL查询来处理HierarchyId数据类型。我也有MySQL
部门树结构。
现在,我想根据业务需求将我的数据库服务器从HierarchyId
更改为HierarchyId
。
在进行可行性检查后,我找到了解决方案,我的整个应用程序将迁移到除{{1}}数据类型之外的MySQL数据库服务器。
因此,我的主要挑战是找到{{1}}数据类型的替代解决方案,而编码的变化极小。
在我的数据库中实施部门层次结构的最佳方法是什么?
...谢谢
答案 0 :(得分:4)
当我们的团队决定从MS-SQL迁移到MySQL时,我遇到了类似的情况。我们使用以下步骤解决了该问题:
因此我们摆脱了MySQL中的hierarchyid功能。
每当我们遇到这样的问题时,我们只需要问问自己,如果我们使用的工具不提供此功能,我们会做些什么。我们通常最终得到最佳答案。
答案 1 :(得分:1)
Mysql没有我所知的等效内容,但您可以将相同的数据存储在varchar中。
对于涉及HierarchyId的操作,您可能必须自己实现它们,可能是用户定义的函数或存储过程。
sqlserver看起来像"物化路径"存储层次结构的方法。可以在http://www.cloudconnected.fr/2009/05/26/trees-in-sql-an-approach-based-on-materialized-paths-and-normalization-for-mysql/
看到mysql中的一个示例