我想构建一个可以存储动态字段的服务。例如,注册用户可以在应用程序的特定区域动态创建,读取,更新和删除通用表单域,并将动态表单保存在数据库中。这些通用表单域将存储用户需要的任何信息。解决这个问题的最好方法是什么? (这是一个数据库设计问题)动态数据库存储
Q
动态数据库存储
1
A
回答
1
为什么不考虑像MongoDB,CouchDB,Riak等没有SQL文档存储?
0
我不得不做一次类似的事情。
最小的设计,我会用会是这样的:
需要三个表来定义表单metadada:
形式:
- FormID(PK)
- 窗体名称
- etc
FormFields:
- FormFieldID(PK)
- FieldID
- FormID
字段:
- FieldID(PK)
- 字段名
- 呸ldType
- 等
和两个表来存储形式实例数据:
FormInstaces:
- FormInstanceID(PK)
- FormID
- 用户ID
- 等
FormFieldInstances:
- FormFieldInstanceID(PK)
- FormInstanceID
- FormFieldID
- 值(这必须是文字,你必须要管理型转换)
这不是我知道的最好的设计,但你甚至可以用这个来支持多值字段。 应该在应用程序级别管理类型转换
+0
为了性能,我想不把所有的通用字段存储在一个表中... – Simba
+0
那么,你的意思是,然后为每种数据类型专门的表(或字段)?为什么会出现性能问题? –
相关问题
- 1. 动态创建Spring数据存储库
- 2. PHP JSON动态存储在数据库
- 3. 动态填充的highcharts数据和数据库存储
- 4. ASP.NET和存储动态数据 - XML或数据库?
- 5. 存储数据动态来自数据库 - c + +
- 6. 数据库存储
- 7. 动态数据输入值存储
- 8. ExtJS图表的动态数据存储
- 9. 从动态表单存储数据
- 10. 问题,如何存储动态数据?
- 11. C#中动态方法的数据库存储
- 12. Android动态数据库SQLite存储最佳实践
- 13. 基于来源未知结果的动态数据库存储
- 14. 配置存储在数据库中的动态表单生成
- 15. 在数据库中存储动态编辑文本值
- 16. 如何从存储过程动态使用多个数据库
- 17. 如何在数据库中存储动态添加行的值
- 18. 如何将动态类型值存储在SQLite数据库中?
- 19. 数据库表的动态名称 - 存储过程
- 20. 动态数据库名和存储列值的变量
- 21. 获取数据时动态数据存储在动态数据类型
- 22. 我想在数据库中存储动态可扩展表单的数据
- 23. WCF服务将数据动态地从XML存储到数据库
- 24. 存储数据库程序
- 25. 存储在数据库
- 26. 数据库的存储
- 27. 储存HTML和数据库
- 28. 存储数据库结构
- 29. 存储在MySQL数据库
- 30. 存储元数据库
你在搜索什么?你有限制吗?其他需求?如果它涉及一些特定的产品或可能的解决方案,比如说像couchDB或MongoDb这样的NoSQL存储,或者像Magento数据库设计那样的可用的RDBMS解决方案,那么您的问题会更有帮助。 http://couchdb.apache.org/ http://www.mongodb.org/ 实体属性值模型:http://en.wikipedia.org/wiki/Entity-attribute-value_model –