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

标签 ruby-on-rails architecture admin

我正在尝试设置一个具有 2 个逻辑分离的组件、管理面板和用户门户的 Rails 项目。从我目前所读到的有很多方法可以设置它;

  • 将两者结合在单个 Web 应用程序和单个数据库中
  • Admin 和 Main 应用程序的 Web 应用程序分开,但使用公共(public)数据库
  • 具有单独数据库的单独 Web 应用程序
  • 将两者合并,但部署单独的实例,一个作为管理员运行,另一个作为主应用程序

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

    最佳答案

    关于可能的架构解决方案的一些想法:
    1. 将两者结合在一个 Web 应用程序和一个数据库中
    优点:

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

  • 缺点:
  • 发现了可以在您的系统中颠倒过来的安全性和功能
    与用户相关的代码在同一屋檐下,所以它的概率更大
    恶意用户可以利用与管理员相关的功能。

  • 2. Admin 和 Main 应用程序分开 Web 应用程序,但使用公共(public)数据库
    优点:
  • 您在不同的应用程序中将具有不同上下文的代码分开,使事情变得更简单
    并且两者的用户体验都更加简洁。

  • 缺点:
  • 由于第二个应用程序存在的原因是操纵数据和
    主应用程序,它将必须读取并影响主应用程序中使用的数据;因此给你更少的开销。

  • 在大多数情况下,这将是最好的情况。
    3. 使用不同的数据库将 Web 应用程序分开
    想不到为什么要在第二个应用程序中执行此操作
    处理第一个和数据库的内容。
    如果你要
    在第二个应用程序中使用大量与您无关的数据
    主应用程序,这将是一个合理的选择。
    4. 结合两者但部署单独的实例,一个作为管理员运行,另一个作为主应用程序运行
    缺点:
  • 您将开发解决方案一,增加了处理两个实例的复杂性。
  • 恶意用户可能会找到一种方法来登录您的管理实例并访问
    管理员级别的功能。
  • 关于ruby-on-rails - 拥有单独的 Web 应用程序的标准是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8502902/

    相关文章:

    ruby-on-rails - 显示验证错误在 angular| 中不起作用$errors 对象为空

    ruby-on-rails - Slim 中的 Ruby Each 循环

    gcc - 使用ffmpeg库编译报错

    web-services - 将旧式RPC样式服务切换到REST有什么好处?

    ubuntu - ssh/shh-copy-id 适用于 root 但不适用于其他用户

    ruby-on-rails - 无法让 Clippy 复制到剪贴板,请按照安装说明进行操作

    python - 我应该使用相同的 url 来登录 Django 中的管理员和其他注册用户吗?

    c# - 允许本地管理员运行应用程序而无需 "Run as Administrator"

    mongodb - MongoDB中的 "admin"数据库是什么?

    ruby-on-rails - 按条件划分的状态机事件不起作用