我已经阅读了很多关于存储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列等。
谢谢!
答案 0 :(得分:2)
你可能有一个好的设计。但是,我会考虑摆脱&#34;缓存的HTML版本&#34;。你可以建立&#39;来自JSON的页面&#34;足够快&#34;。看看这个stackoverflow页面。它没有缓存。实际上,它是由大量组件构建的,其中许多组件可能是从数据库动态加载的。
为每个可能的输入添加&#34;列&#34;很快就会成为维护的噩梦。为您需要搜索的内容创建列;将JSON用于其他东西并让应用程序处理解析/扩展/等。也就是说,不要去EAV(实体 - 属性 - 值)设计。