gpt4 book ai didi

MySQL:SQL Server HierarchyId 数据类型的替代解决方案

转载 作者:可可西里 更新时间:2023-11-01 07:58:51 28 4
gpt4 key购买 nike

我当前的应用程序是在 JAVA 中使用 HibernateSQL Server 2008 服务器中构建的,我使用了 HierarchyId 我数据库中部门层次结构的数据类型。

我编写了 SQL 查询来处理 HierarchyId 数据类型。而且我还有部门树结构的n-Level

现在我想根据业务需求将我的数据库服务器从 SQL Server 2008 更改为 MySQL

在可行性检查之后,我提出了将整个应用程序迁移到 MySQL 数据库服务器的解决方案,HierarchyId 数据类型除外。

因此,我的主要挑战是找到 HierarchyId 数据类型的替代解决方案,同时对编码进行最少的更改。

在我的数据库中实现部门层次结构的最佳方式是什么?

谢谢...

最佳答案

当我们的团队决定从 MS-SQL 迁移到 MySQL 时,我遇到了类似的情况。我们使用以下步骤解决了该问题:

  1. 在 MS SQL 中的同一个表中添加了一个 varchar(100) 类型的列。
  2. 使用 hierarchyid.ToString() 函数将 hierarchyid 从十六进制值转换为字符串,并使用计算列功能将其保存在新创建的列中。例如。 0x58 -> “/1/”,0x7CE0 -> “/3/7/”。
  3. 实体的级别等于'/'的个数减1。
  4. 这些列可以迁移到 MySQL。
  5. IsDesendantOf() 和 is 方法已替换为与“%”连接的字符串的 LIKE 函数。

因此我们摆脱了 MySQL 中的 hierarchyid 功能。

每当我们遇到这样的问题时,我们只需要问问自己,如果我们使用的工具没有提供此功能,我们会怎么做。我们通常最终会得到最佳答案。

关于MySQL:SQL Server HierarchyId 数据类型的替代解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24525634/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com