【问题标题】:Website navigation tree as JSON - is it bad practice? [closed]JSON 格式的网站导航树 - 这是不好的做法吗? [关闭]
【发布时间】:2013-10-28 22:33:45
【问题描述】:

我必须为网站实现 x 级深度导航菜单。在我花了几个小时试图想出一种存储、操作和显示这棵树的好方法之后,我决定使用 JSON 而不是 MySQL。我要么把它放在一个文件中,要么放在 MySQL 中的一个字段中(我认为这可能是一种矫枉过正,因为它只有一行和一个字段)。

我正在使用 jQuery 可嵌套列表插件,我想使用 JSON 的原因是我可以直接操作项目数据,因为它们是 DOM 元素(我发现这比传递 ID 和处理哪个更容易元素用于删除,应该更新,应该添加),并获得序列化输出,将其“按原样”保存在文件中,当将其放置到水平多级下拉菜单中时,我可以在 PHP 的帮助下完成项目订单和插件的嵌套。

出于某种原因,这是不好的做法吗?性能方面?

【问题讨论】:

  • 谢谢你的 2 美分,马特。

标签: php jquery mysql json navigation


【解决方案1】:

有几点需要注意:

1)使用MySQL存储树形结构isn't really that straight-forward

2) 但是数据库引擎会处理一些基本锁定(想想如果两个用户将树结构写入文件at the same exact time 会发生什么)

3) 如果您“按原样”序列化和存储结构,但 html 和/或 java-script 结构发生变化,会发生什么情况?它还会起作用吗?您很可能必须编写一个函数来将所有序列化数据转换为与新结构兼容。

4) 就性能而言,无论您使用 json + files / json + mysql / 确实没有任何区别只有 mysql - 这几毫秒不会有任何区别。让您的代码保持逻辑性、可读性和易于维护性——在大多数情况下,升级硬件比维护和开发“hacky”代码更便宜。

综上所述,将这种数据存储为json似乎是可以的,只是要注意上面提到的一些可能的问题。

【讨论】:

  • 谢谢,Mikk,我很感激。
猜你喜欢
  • 2015-01-22
  • 2019-02-12
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多