Ruby on rails 目录/订单系统的应用架构设计

Ruby on rails 目录/订单系统的应用架构设计,ruby-on-rails,ruby-on-rails-3,architecture,Ruby On Rails,Ruby On Rails 3,Architecture,我必须编写一个系统,允许客户订购产品。有一个现有的应用程序可以处理创建目录(添加、编辑产品等)的操作。生产商使用该应用程序来维护有关其产品的数据。现在我想知道如何添加订单功能(我可以访问目录应用程序和目录数据库的源代码)。订单功能可以简单地描述为: 客户可以登录新订单,查看旧订单 生产商可以登录并查看客户的新订单,存档订单 midleman应该看到所有订单按生产商分组,以便决定是否发货 我在想几个方法: 使用只包含订单的新数据库创建新应用程序。 目录数据库和订单数据库中的产品将通过[Pro

我必须编写一个系统,允许客户订购产品。有一个现有的应用程序可以处理创建目录(添加、编辑产品等)的操作。生产商使用该应用程序来维护有关其产品的数据。现在我想知道如何添加订单功能(我可以访问目录应用程序和目录数据库的源代码)。订单功能可以简单地描述为:

  • 客户可以登录新订单,查看旧订单
  • 生产商可以登录并查看客户的新订单,存档订单
  • midleman应该看到所有订单按生产商分组,以便决定是否发货
我在想几个方法:

使用只包含订单的新数据库创建新应用程序。

  • 目录数据库和订单数据库中的产品将通过[Productucent\u id,product\u id]对进行连接
  • 在订单应用程序中,我将连接到目录数据库以显示有关产品的信息

    我认为这种方法的缺点是

    • 无法进行统计查询,如“统计类别中所有木制物品的订单”等
    优势

    • 与现有应用程序的明确分离
向现有应用程序添加功能并使用相同的数据库

  • 生产商在菜单“订单”中有另一个选项
  • 为客户和中间商添加新功能
我认为这种方法的缺点是

  • 例如,无法将订单数据库/应用程序移动到其他服务器
优势

  • 能够运行交叉订单/目录查询
我真的拿不定主意。我可以看到这两种方法的优点和缺点,但不能决定哪一种更好。你有什么建议吗,也许是第三条路


p.S技术将是ruby on rails

就个人而言,我会选择“向现有应用程序添加功能”

我认为您不想单独销售订单应用程序,因为它完全取决于目录/产品应用程序的构建方式

开发将更加容易,不仅数据库访问,而且现有基础设施的重用将提高您的开发速度

我想您想要将orders应用程序移动到另一台服务器的唯一原因是性能问题。我想说的是,你永远不应该为你不确定会发生的情况而优化

当您注意到一些真实的、可测量的性能问题时,执行不受支持的跨数据库查询以优化应用程序要困难得多


所以在我看来,开发加快了性能问题的速度。

我也担心这样的情况:我对现有代码做了一些巨大的更改,但还没有准备好投入生产,然后我们将不得不对目录进行一些更改。。。你认为创建svn早午餐会是解决这个问题的好方法吗?是的!分支肯定会有帮助。如果您在分支(可能还有子分支)中进行所有新的开发,您总是可以毫无问题地发布现有应用程序的新版本。你能让旧代码完全不知道新代码吗?这可能会改进您的设计。我想我可以,但我仍然希望避免放入无法使用的生产代码(如果没有分支,情况就是这样)另一方面,搜索svn分支/合并会产生非常可怕的结果——很多人抱怨svn中的这一功能……我不是svn方面的专家,但分支在源代码管理中非常常见,所以我总是建议使用它。当进行新的开发并支持旧版本时,这将使您的生活更加轻松。好的,我会研究一下。感谢您的订婚:)