首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Rails中创建用户自定义数据库(如Zoho创建者)?

如何在Rails中创建用户自定义数据库(如Zoho创建者)?
EN

Stack Overflow用户
提问于 2010-04-09 06:14:46
回答 5查看 1.5K关注 0票数 9

我正在学习Rails,我的实验的目标是实现类似Zoho、Flexlist或Mytaskhelper的东西,即用户可以创建自己的数据库模式和视图的应用程序。追求这一目标的最佳策略是什么?

我看到了一些关于Entity-Attribute-Value (EAV)的东西,但我不确定这是最好的策略,还是Rails中对它的支持。

如果Rails中有任何关于类似项目的教程,那就太好了。

也许这不是学习新语言和新框架最容易的明星,但这将是我很长时间以来真正打算做的事情。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-04-15 22:26:27

你最好的选择是MongoDB。它很容易学习(因为查询语言是JavaScript),并且它提供了一个无模式的数据存储。我将为每个表单创建一个定义表单结构的文档。然后,每当用户提交数据时,就可以将数据放入一个通用结构中,并根据表单的名称将其存储在集合中。在MongoDB中,集合与表类似,但可以动态创建它们。您还可以动态创建索引以加快搜索速度。

您要解决的问题是面向文档数据库的主要用例之一,而MongoDB就是这种情况。还有其他几个面向文档的数据库,但在我看来,MongoDB目前拥有最好的API。

MongoDB Ruby教程读一读,我相信你会想试一试。

不要使用关系数据库来执行此操作。动态创建表将是痛苦的,不仅对您的系统,而且对您的用户的数据都是一种安全风险。您可以通过创建一个跟踪表单结构的复杂架构来避免动态创建表,而且每个字段类型都需要自己的表。Rails减少了多态关联的痛苦,但它肯定不是很好。

票数 10
EN

Stack Overflow用户

发布于 2010-04-11 19:06:29

我认为这并不完全是你想要的,但是这个分叉 --但是很明显,它做了一些类似的事情--你可能会有一些想法来开始。

票数 0
EN

Stack Overflow用户

发布于 2010-04-14 12:21:25

应该可以通过直接向服务器发送DDL语句或动态生成迁移来生成数据库表。然后可以使用ActiveRecord (ActiveRecord::Base) do .结束。原则上,这是可行的,但必须谨慎行事。但这绝对不是初学者的工作。

第二个解决方案可以是使用MongoMapperMongoDB。我的想法是使用集合来存储表的行,而且由于MongoDB是模式较少的,所以您可以简单地添加属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2605419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档