将表单数据存储为 JSON
Storing form data as JSON
我已经阅读了很多关于存储 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 版本,因此我认为在读取页面进行显示时不会出现速度问题。
我的问题是这会在未来造成更多问题吗?我真的不需要搜索这些数据或任何东西。只允许用户偶尔对其进行编辑(并在需要时向其添加更多元素)
或者我应该将其转换为键->值对 "meta" table 并在页面 ID 上进行联接?
或者,我考虑过为每个可能的输入添加列:
标题栏、sub_heading 栏、button_caption 栏等
谢谢!
你的设计应该不错。但是,我会考虑摆脱 "cached HTML version"。您可能 'build' 来自 JSON "fast enough" 的页面。查看此 Whosebug 页面。它没有被缓存。事实上,它是由大量组件构建的,其中许多组件可能是从数据库动态加载的。
"column for every possible input" 很快就会成为维护的噩梦。为您需要搜索的内容制作专栏;将 JSON 用于其他内容,让应用程序处理 parsing/expanding/etc。也就是不要去EAV(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 版本,因此我认为在读取页面进行显示时不会出现速度问题。
我的问题是这会在未来造成更多问题吗?我真的不需要搜索这些数据或任何东西。只允许用户偶尔对其进行编辑(并在需要时向其添加更多元素)
或者我应该将其转换为键->值对 "meta" table 并在页面 ID 上进行联接?
或者,我考虑过为每个可能的输入添加列: 标题栏、sub_heading 栏、button_caption 栏等
谢谢!
你的设计应该不错。但是,我会考虑摆脱 "cached HTML version"。您可能 'build' 来自 JSON "fast enough" 的页面。查看此 Whosebug 页面。它没有被缓存。事实上,它是由大量组件构建的,其中许多组件可能是从数据库动态加载的。
"column for every possible input" 很快就会成为维护的噩梦。为您需要搜索的内容制作专栏;将 JSON 用于其他内容,让应用程序处理 parsing/expanding/etc。也就是不要去EAV(Entity-Attribute-Value)设计。