php – 灵活的表单和支持数据库结构
我的任务是创建一个允许管理员改变用户输入表单内容的应用程序(即添加任意字段) – 其内容存储在数据库中.想想Modx / WordPress / Expression Engine模板变量.
我一直在研究的方法是实现具体表格,其中规范是一致的(即用户简档,用户内容等)和一些通用字段数据表(即文本,布尔值)来存储非特定值.表单(和模型字段)将通过首先查询表并检索相关列来生成 – 尽管我还没有考虑如何设置验证. 我已经看过这个问题了,它似乎表明了一种EAV类型的方法 – 从我的简短研究来看 – 它似乎比它的灵活带来的祝福更大的负担. 我在这里读了几篇文章,这表明这是一条危险的路线: How to design a generic database whose layout may change over time? Dynamic Database Schema 如果有人愿意,我会对这件事提出一些建议 问候 SWK 解决方法
几年前我创建了一个非常大的EVA数据库(PHP w / PostgreSQL).结果很棒,但这是一个大项目($$$).所有表单都是完全动态的,包括表单/字段版本控制,发布工作流程,匹配动态报表等.
EVA基础知识很简单.获取数据并不困难.但是形成版本控制和报告……你可以花费数年时间来做正确的事. 如果我今天再次这样做,我会研究使用一种较新的NoSQL解决方案(http://en.wikipedia.org/wiki/NoSQL#Document_store).我想创建一个可以传递给表单生成器的DTO样式类. “修改”表单实际上是修改DTO.然后我会将DTO保存到文档/对象数据库中. 此外,在构建alpha解决方案时,请考虑如何解决包含版本控制和报告需求的测试用例. 这是我的意思的一个例子:一个简单的“提问题表”. >原创(版本1):有第一个,最后一个,问题 现在,您需要生成报告(csv).事情变得棘手.你怎么做呢? 我们通过引用其先前版本的字段级版本解决了这个问题.此外,报告系统要求最终用户在运行之前汇总报告数据源的定义. (将报告字段绑定到数据字段等). 然而,对于文档DB,我想你可以用不同的方式做到这一点.我相信新的数据库就像CouchDB(其他人)一样,内置了处理这些问题的机制. 祝好运!! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |