两个数据库之间的MySQL Share表

时间:2011-03-19 21:32:45

标签: mysql database share

我想知道我的方法在这里是否不正确

我有一个简单的网站,您可以注册。它有一个名为USERS的主数据库,它有一个包含所有用户列表的表,然后为每个新用户生成一个名为DB1,DB2,...,DBn的新数据库。我这样做的原因是因为每个用户存储了大量信息,我认为这是一种更好的方法。但是,现在我遇到的问题是用户数据库需要访问USERS数据库中的表(对于外键),我无法弄清楚如何做到这一点。

我承认我对MySQL没有多少经验,因此为每个用户创建一个新数据库可能是一个非常糟糕的决定。是这样的吗? MySQL的效率如何?例如,我可以为(假设的)100,000个用户创建一个列表,其中每个用户还有100个条目,比如图片,他们已经上传。

由于

3 个答案:

答案 0 :(得分:6)

我也在研究同样的问题。我找到了解决方案:http://drupal.org/node/37075

您可以在每个数据库中创建表示常用USERS表的VIEW。

mysql> use DB1;
mysql> CREATE VIEW users AS
mysql> SELECT *
mysql> FROM USERS.users

答案 1 :(得分:3)

这是一个非常糟糕的设计决定。您要做的是为此应用程序中的所有表创建单个数据库。在您的示例中,您将拥有一个数据库(称为MyProject)。您将拥有一个用户表,称之为User,其中包含所有用户条目 - 100,000个条目是现代硬件的小型数据库,所以不要担心它。然后,您将拥有一个名为UserPhoto的表,其中包含对User中主键的引用以及您需要的任何其他数据。

答案 2 :(得分:1)

您可以使用语法

在数据库之间进行查询
db_name.table_name.table_field