2016-11-16 68 views
-1

我们有多个同步到一个奴隶的主人。我们决定为每个主数据库创建一个数据库(比如说MDB0001; MDB0002; MDB0003等)。如果一个复制失败或损坏了数据,这将允许不会损坏整个数据库...从属用于向网络上的人员显示信息(主站仅在本地网络中可用)一个网站 - 多个数据库

其目的是:我们希望在服务器(从属)上有一个网站(在php中),它显示每个数据库的内容,取决于谁登录。因此,如果用户MDB0001已连接,则必须从数据库读取数据MDB0001。

这怎么办?这是一个好方法吗?或者,我是否必须为每个数据库复制网站?

我希望我的解释清楚。谢谢

+1

什么?你有每个用户的数据库?你有多少用户? – 2016-11-16 02:44:52

+0

这不是我决定的......目前,我们有2个数据库。但每次系统销售时,都会创建一个新的数据库。我的第一个想法是用不同的主键(唯一键+自动增量)为每个主数据库创建一个数据库,然后它将被复制到同一个数据库中。但技术人员表示,将它们单独用于复制将会更容易和更安全。现在是改变主意的时候了。系统的这部分尚未创建。这就是我问这个问题的原因。 – sincos

+0

当您有5000个客户时,为维护噩梦做好准备。 – tadman

回答

0

假设你从登录中得到一个变量,你可以在你的db.php页面上放置一个key-> value数组;

$userDBs = array('login1'=>'db1','login2'=>'db2'); 

$dbName = $userDBs[$loggedinID]; // if login1 logs in, db1 would be result. 

    $db = new PDO('mysql:host=localhost;dbname='.$dbName, 'someUser', 'somePass'); 

或有一个单独的分贝的关联:

$sel = "Select dbName from databases where userId='".$loggedInID."'"; 
    $stmt = $db->query($sel); 
    while($r = $stmt->fetch()){ 
     $dbName = $r['dbName']; 
    } 

$db = new PDO('mysql:host=localhost;dbname='.$dbName, 'someUser', 'somePass'); 
+0

我不知道这是如何回答问题 – 2016-11-16 03:39:08

+0

大声笑,你今晚都在我身边。他问,如果login1登录,他们使用db1,如果login2登录他们使用db2,我错了吗? – bart2puck

+0

对不起,如果看起来这样,我想我更关注复制问题,这实际上并没有问到。 – 2016-11-16 03:51:47

相关问题