ruby-on-rails – 拥有单独的Web应用程序的标准是什么?

我正在尝试设置一个Rails项目,该项目有两个逻辑上分离的组件,即管理面板用户门户.从我到目前为止所读到的,有很多方法来设置它;

>将单个Web应用程序与单个数据库结合使用
>为管理员和主要应用程序分离Web应用程序,但使用通用数据库
>使用单独的数据库分离Web应用程序
>合并两者但部署单独的实例,一个作为Admin运行,另一个作为Main应用程序运行

主应用程序将需要处理繁忙的流量,管理员适度低.
在四个选项中设置项目的最佳方法是什么?
还有什么可能是每个的缺点?
还有其他方法可以做得更好吗?

解决方法

关于可能的架构解决方案的一些想法

1.将单个Web应用程序与单个数据库结合使用

优点:

>您拥有单一项目配置下的所有内容,
这样就可以避免两次配置项目设置.
>您可以重复使用代码而无需复制文件或参考文件
在不同的目录中,有时可能会很麻烦.

缺点:

>安全性,可以在系统中将事物颠倒过来的功能
在与用户相关的代码的同一屋檐下,所以它有更大的概率
管理员相关的功能可被恶意用户利用.

2.为管理员和主要应用程序分离Web应用程序,但使用通用数据库

优点:

>在不同的应用程序中将代码与不同的上下文分开,使事情更简单
并且用户体验更加简洁.

缺点:

>由于第二个应用程序存在的原因是操纵数据和
在主应用程序中,它必须读取并影响主应用程序中使用的数据;因此减少了开销.

在大多数情况下,这将是最好的情况.

3.使用单独的数据库分隔Web应用程序

在第二个应用程序出现时,想不到为什么要这样做
处理第一个数据库内容.
如果你要去
在第二个应用程序中使用与您的数据无关的大量数据
主要应用,这将是一个合理的选择.

4.组合两者但部署单独的实例,另一个作为Main应用程序运行

缺点:

>您将开发解决方案一,增加处理两个实例的复杂性.>恶意用户可能会找到登录管理实例并获取访问权限的方法管理级功能.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...