我正在开发一个表单生成器,并想知道将JSON存储在SQL数据库中是不是很糟糕?
我想保持我的数据库和表格简单,所以我会有
`pKey, formTitle, formJSON`
在桌子上,然后存储
{["firstName":{"required":"true","type":"text"},"lastName":{"required":"true","type":"text"}}
在formJSON中.
任何输入都表示赞赏.
我在我的CMS(主存大约110个站点)中广泛使用JSON,我发现访问数据的速度非常快.我感到惊讶的是没有更多的速度降级.CMS中的每个对象(页面,布局,列表,主题等)都有一个名为JSONConfiguration的NVARCHAR(MAX)列.我的ORM工具知道要查找该列并在需要时将其重新构建为对象.或者,根据具体情况,我将把它传递给客户端,以便jQuery或Ext JS进行处理.
至于我的代码的可读性/可维护性,你可能会说它得到了改进,因为我现在有了代表DB中存储的许多JSON对象的类.
我使用JSON.net进行所有序列化/反序列化.https://www.newtonsoft.com/json
我还使用单个查询来返回带有实际数据的meta-JSON.与Ext JS的情况一样,我有查询返回Ext JS对象的结构以及对象将需要的数据.这减少了一个回发/ SQL往返.
我还惊讶于代码解析JSON对象列表的速度有多快,并将它们映射到DataTable对象,然后我将其传递给GridView.
我看到使用JSON的唯一缺点是索引.如果您有需要搜索的JSON属性,则必须将其存储为单独的列.
有JSON DB可以更好地满足您的需求:CouchDB,MongoDB和Cassandra.
从sql server创建对象数据库的绝佳方法.我为所有配置对象以及其他不需要任何特定查询的内容执行此操作.扩展您的对象 - 简单,只需在您的类中创建一个新属性,并使用默认值创建init.不再需要房产吗?只需在课堂上删除即可.易于推出,易于升级.不适合所有对象,但如果你提取任何需要索引的道具 - 继续使用它.非常现代的使用sql server的方式.