意图是JSON
在MySQL中无法使用JSON.有些DBMS可能支持JSON,但这是不可能的,此外,任何类型的“支持”只是执行一些特定于JSON的操作,而不是关于建模您的架构(这两件事情完全不同)更多,完全意义上,MySQL的模型概念(即关系)与JSON不同的是:作为一个关系型DBMS,它遵循relational data model,而JSON是完全不同的格式.您将它存储为纯字符串值,因此,如果不使用字符串函数,则无法以其他方式对其执行任何操作.因此,即使使用JSON,您也不会在关系模型中执行此操作,因此,不可能维护关系功能,例如参照完整性.
要解决的选项
你有几个选择:
>迁移到Postgree SQL,因为它扩展了对json的支持,因为版本9.4是jsonb,它甚至更快.这可能是最好的选择,因为它是RDBMS,因此迁移对于真正面向文档的DBMS来说不会那么难.
>或者现在迁移到Mongo(如果这是你的意图),在为时已晚.请注意,Mongo与RDBMS完全不同,它是面向文档的.我想这对你的项目和你的客户来说都是最好的选择(你的任务就是解释那个)
>更改整个体系结构,这样您就不会存储JSON对象,并且可以使用规范化(就关系数据库而言)实体.这意味着 – 是的,所有代码的整个重构,改变所有关系等.在实际情况下,这只是理论选择,你不会既没有时间也没有金钱.
>为MySQL实现自己的JSON库.难吗?取决于你将如何处理你的JSON,但JSON是公共格式,所以你至少应该知道该做什么.您可以将其作为UDF或在user-land(因此使用CREATE FUNCTION语句)执行.当然,这需要特定的技能和时间.坏事:错误.即使您能够比重新构建体系结构或迁移到Mongo更快地创建这些功能,您仍然无法确定这些功能的质量.没有办法本机测试该代码.但是,我可能会提示用户登陆功能的情况 – 如果您的MySQL是5.6或更高版本,您可以使用mysql-unit来测试您存储的代码(好吧,我已经编写了这个工具,但是它也可能