0

我的朋友已经为 Ragnarok Online 服务器设置了一个数据库,他希望我编写相关网站的代码,该网站将使用其中的一些数据(显然,我必须为新闻系统、网站帐户添加表格, ETC)。因为我正在学习 RoR,所以我打算这样做。我有一些与此相关的“最佳实践”问题:我是否应该为网站创建一个不同的数据库,因为它将与游戏数据一起拥有其特定数据?(我已经有一些线索可以将多个数据库与 Rails 链接起来,但这似乎太麻烦了)。如果不是,我是否必须为组成数据库的每个表创建模型/控制器,尽管我不会使用其中的 90%?或者只是我需要的那些?

这个问题的一个例子:游戏数据库有它自己的“用户”表,但我必须有另一个网站的“用户”表,并在这两者之间做一些连接。那么,这里的最佳做法是什么?

4

1 回答 1

2

嗯,最佳实践不是制作自己的用户表。这会给你带来很大的痛苦。最佳实践?使用 API。以某种方式向您的网站公开游戏的数据库,并在您的 Web 应用程序中通过外部请求获取该信息。

制作第二个用户表的原因很麻烦:

1) 您必须不断更新它,从原始数据中提取数据以使其保持最新。

而且我的意思是,您将不得不创建一个 CRON 作业或从原始表中提取数据以使其保持最新状态。呸。另外,如果 CRON 工作出错了怎么办?(它会)

2)如果维护两个单独的表,几乎不可避免地会出现不一致。您确定您的 Web 应用程序真的是防故障的吗?

更新:

您需要的本质上是第二个 Rails 应用程序,它充当该数据库的 REST API。为了更好地了解 REST 是什么,我会通读这篇文章以帮助您入门:http ://tomayko.com/writings/rest-to-my-wife

一旦您对此有了很好的理解,就可以开始制作您的应用程序,并使用 cURL 等工具向您的 API 发送请求来测试它是否正常工作。

完成后,我将研究一下像 Nobita 提到的 Ruby rest - client gem 。这就是您要从您的 Web 应用程序中使用的内容,以从您的 API 应用程序请求信息。

请注意,我认为这将是一个糟糕的第一个 Rails 项目,除非你已经非常精通其他 Web 开发工具,最好是 MVC 框架。

于 2012-08-07T21:07:26.317 回答