0

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

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

由于某种原因,这是不好的做法吗?性能明智?

4

1 回答 1

1

有一些事情需要注意:

1)使用 MySQL 存储树结构并不是那么简单

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

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

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

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

于 2013-10-29T01:33:40.097 回答