0

有没有办法在 ROR 应用程序中自动创建新数据库。

我要做的是为每个注册我的网站的新用户创建一个新数据库。因此,如果新用户注册成功,将创建一个包含一些空表的新数据库。

新用户将获得一个新数据库,新数据库将是其中相同的表,但每个用户将存储的信息将不同。

我认为我需要这个的原因是如果用户不再想使用我的系统,我可以向他们提供他们存储在我的数据库中的信息,然后轻松删除数据库和表

我正在寻找的是类似于 mysql_create_db() 在 php

4

2 回答 2

0

你不认为你正在使一个简单的系统变得复杂吗?你的思维方式是不可扩展的。例如,如果您有成千上万的用户,您必须创建相同数量的数据库表!大多数表格可能没有用。这绝对是荒谬的……

如果您只想实现以下目标

  • 每个用户都有自己的数据。
  • 用户可能想要导出数据。
  • 如果用户关闭他的帐户,您将删除他的所有数据

那么您最好将整体视为具有单个数据库的单个应用程序。相应地设计您的数据库,并更好地寻找 Rails 的最佳 DRY 实践来实现它。

于 2012-09-01T17:12:35.657 回答
0

这不是将用户存储在关系数据库中的好方法,尤其是在使用像 ruby​​ on rails 这样的应用程序框架时,这取决于您的以下约定而不是配置。

拥有一个用户模型并使用 Devise 和 Cancan gem 来管理角色和权限。没有必要在这里重新发明轮子,这就是它要做的事情。

如果还有其他考虑因素,例如尺寸或性能,请详细说明。你给出的理由(易于管理)不是走这条路的好理由。

这是一个有趣的想法,并且在其他领域也有使用,但对于您的标准用户表来说真的不是很好。

于 2012-09-01T17:21:18.510 回答