Cakephp在登录基础上选择数据库

时间:2013-09-28 15:32:20

标签: php mysql database cakephp

我想知道是否有办法做多个数据库系统

例如,我有许多客户注册到我的系统,我想在y登录时选择其数据库,因为我想用每个客户端划分一个自己的数据库。它是否正确?因为我想分开每个客户的信息。 好吧,我认为我必须将multipl配置放入cakephp的数据库文件中,但我不知道这样做很热: 当客户端创建lgin(使用默认数据库)时,当他们登录时,我想在包含其数据库名称的表中获取一个变量,然后将其变为活动数据库。

这可能吗? 我无法向foreach客户端声明数据库配置。

有人可以帮助我吗?

由于

这是我在database.php中的实际默认数据库

public $default = array (
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'login',
        'password' => 'password_',
        'database' => 'default_db',
        'prefix' => ''
    );

我想分开数据库,因为我想创建一些页面,其中每个客户端都可以编辑某些表的字段,例如:如果他们想要添加到表项目字段notes,他们可以,anotoher客户端don我想要这个,但很多很多。我想创建一个系统来编辑一些表格。
为此,有两种解决方案:

- 登录时登录的单独数据库
- 每次用户注册时使用唯一的数据库广告我自动创建其表格,例如,没有表格project,但project_{user_id},例如,每个用户都可以拥有其表格。

哪种方法更好?

由于

1 个答案:

答案 0 :(得分:1)

  

我想用自己的数据库划分每个客户端。它是否正确?   我认为使用CakePHP实现这个任务并不是一个好主意,但有可能看看CakePHP DataSources。简单来说,您的解决方案应该是这样的:

  1. 设置主数据库,包含一些应用程序指定的数据。
  2. 使用MySQL内置技术授权用户。
  3. 使用具有授权用户访问数据的其他DataSource。
  4. 您必须注意授予权限。

      

    哪种方法更好?

    取决于用户数量。如果它是两个或三个,那么你的方法之间没有区别。但如果它是100或1000,那么管理你的表将很困难。记住Ockhman的话:实体不能超越必要性。使用MySQL方式,数据库必须存储表,用户可以访问数据库。不要违反这条规则。

    另请参阅PHPMyAdmin,也许最好根据您的需求进行更改,它是根据GNU GPL2许可证授权的。