动态表单创建/调查Web应用程序的数据库模式注意事项

时间:2011-12-07 22:06:21

标签: database database-design web-applications serialization database-schema

我正在构建一个Web应用程序,它基本上允许“管理员”创建包含任意数量和表单元素组合的表单(复选框,组合框,文本字段,日期字段,无线电组等)。 “用户”将登录此应用程序并完成管理员创建的表单。

我们正在使用MySQL作为我们的数据库。有没有人用这种功能实现了一个应用程序?我的第一个想法是序列化表单模式有JSON并将其存储在我的一个数据库表中,然后序列化来自不同用户的提交,并将其存储在mysql表中。另一个想法是:像MongoDB这样的无sql数据库是否适用于这个?

1 个答案:

答案 0 :(得分:2)

是的,面向文档的数据库,如MongoDB,CouchDB或Solr可以做到这一点。表单或表单响应的每个实例都可能具有可能不同的字段集。您还可以索引字段,如果文档包含相应的字段,它们将帮助您查询文档。

我在SQL数据库中实现的另一个解决方案是How FriendFeed uses MySQL to store schema-less data中描述的解决方案。

基本上类似于将半结构化数据存储在序列化JSON中的想法,但为要编制索引的每个不同表单字段创建另一个表。然后,您可以执行快速索引查找并返回到序列化JSON数据包含您正在查找的字段/值对的行。