当列未知时,在SQL数据库中存储数据的正确方法

时间:2016-05-09 07:11:31

标签: mysql django

所以我的情况是,我正在开发一个像应用程序一样的表单构建器,需要为所有用户定制。表单托管并在数据库中收集响应。现在在数据库等mysql中执行相同操作的正确方法是什么。

例如,假设有两个表单,一个带有文本字段,另一个带有单选按钮和文本字段。此外,一旦创建该模型,有任何方法可以使用django表单,或者我必须采取其他方式。

1 个答案:

答案 0 :(得分:1)

最近mysql引入了JSON fields

  

从MySQL 5.7.8开始,MySQL支持启用的本机JSON数据类型   JSON中有效访问数据(JavaScript Object Notation)   文档。 JSON数据类型提供了优于存储的这些优点   字符串列中的JSON格式字符串:

即使您没有最新版本的mysql,仍然可以将JSON数据保存在varchar字段中,并且是很多third party libraries支持的为Django提供JSON支持的流行解决方案。

需要第三方库的原因是因为Django没有内置的JSONField。最近为Postgresql添加了一个,但mysql仍然落后。

不涉及mysql的替代方法是使用redis。 Django对redis有很好的支持,因为你知道redis哈希与python词典非常相似。与mysql json字段一样,ORM支持需要第三方库。然而,将redis视为python字典更简单,可以跨会话持久化并快速查询。最后但并非最不重要的是哈希只是冰山一角。