打破数据库规范化以大大简化检索?

问题描述

在我正在开发的网站的前端,我有一个 JSON 对象描述一棵树,深度为七层。

我将组成此 JSON 的对象单独存储在后端的 mySQL 数据库中。

树中每个级别的子元素(L1_1、L1_2 等)代表必须按顺序显示的 DOM 对象,并且该顺序可以并且将会经常更新。

所以,JSON 看起来像这样(为了简单起见,删除了很多细节,每个级别都是不同类型的对象,后端有一个单独的表):

{
   {
      level_1: {
         L1_1: {
            children: [L2_1,L2_2,L2_3]
         },...
      },level_2: {
         L2_1: {
            children: [L3_1,L3_2,L3_3]
         },level_3: {
         L1_1: {
            children: [L4_1,L4_2,L4_3]
         },...
   }
}

我的问题是 - 在后端,我可以:

  • parentorder 字段添加到每个对象类型的表中,连接表或执行多个查询以获得每个级别的子项,更新 order 每次重新排序子项时都有多个值的列并编写代码以对我发送到前端的 JSON 对象中的子项进行排序,或者
  • 将每个对象的 children 数组作为字符串存储在每个对象类型表的 children 列中。这意味着第一个选项中的任何摆弄都是不必要的,并且使生活变得更简单,但它确实打破了正常化并且看起来非常激进。

我想选择选项 2。我应该吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)