php - JSON 形式的网站导航树 - 这是不好的做法吗?

标签 php jquery mysql json navigation

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

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

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

最佳答案

有一些事情需要注意:

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

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

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

4) 从性能角度来看,无论使用 json + files/json + mysql/ 都没有任何区别只有 mysql - 那几毫秒不会有任何区别。保持代码逻辑性、可读性和易于维护性 - 在大多数情况下,升级硬件比维护和开发“hacky”代码更便宜。

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

关于php - JSON 形式的网站导航树 - 这是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19646312/

相关文章:

php - Symfony onKernelException 监听器

php - MYSQL PHP使用查询结果在foreach循环中重新查询(复杂-我认为)

javascript - 将 URL 作为发布数据传递时,jQuery ajax 返回 404 错误

php - 将文本从textarea插入到mysql表中

c# - 在 .isPasswordExpired 和服务器线程、版本上使用 c# 连接 mysql 时出现空引用异常

mysql - 如何让 UNIQUE 字段为空?

javascript - 从自动完成的输入框中获取选定的字符串

php - 在 PHP 中使用引用

javascript - 失去JS功能

javascript - 如何在 JavaScript 中创建轮播/ slider 效果?