将表单数据存储为JSON

时间:2016-04-09 22:43:58

标签: mysql json database database-design entity-attribute-value

我已经阅读了很多关于存储json和查询速度的限制,但是,我仍然在努力设计我的数据库。

目前,我将来自CMS(带输入的表单)的数据作为JSON存储在content列中

存储的数据如下所示:

{
  "heading": {
    "value": "Taylor Francis"
  },
  "sub_heading": {
    "value": "photographer \/ artist \/ designer"
  },
  "button_caption": {
    "value": "View Work"
  },
  "button_link": {
    "value": "/work"
  },
  "content": {
    "value": "<p style=\"margin-top: 22px; margin-bottom: 22px; padding: 0px;\">A Brief History[...]"
  }
}

只有在用户更新页面时才需要访问和解析此数据。

保存页面后,会创建一个缓存的HTML版本,因此在阅读我想的页面时没有速度问题。

我的问题是,将来会产生更多问题吗?我真的不需要搜索这些数据或任何东西。只需允许用户偶尔编辑一次(如果需要,可以添加更多元素)

或者我应该将其转换为key-&gt;值对&#34; meta&#34;表并在页面ID上加入?

或者,或者,我想过为每个可能的输入添加列: 标题列,sub_heading列,button_caption列等。

谢谢!

1 个答案:

答案 0 :(得分:2)

你可能有一个好的设计。但是,我会考虑摆脱&#34;缓存的HTML版本&#34;。你可以建立&#39;来自JSON的页面&#34;足够快&#34;。看看这个stackoverflow页面。它没有缓存。实际上,它是由大量组件构建的,其中许多组件可能是从数据库动态加载的。

为每个可能的输入添加&#34;列&#34;很快就会成为维护的噩梦。为您需要搜索的内容创建列;将JSON用于其他东西并让应用程序处理解析/扩展/等。也就是说,不要去EAV(实体 - 属性 - 值)设计。