分离多个数据库使用的查找表

时间:2019-03-26 04:33:16

标签: mysql database-design relational-database

我有两个使用相同查找表(包括国家,州,类似语言的表)的数据库。目前,这些查找表位于数据库之一中。

我应该将这些查找表存储在单独的第三个数据库中吗? 在联接过程中将它们分开会带来任何负担吗?

我对此进行了搜索,但只发现了数据库内部问题。

2 个答案:

答案 0 :(得分:1)

跨数据库连接没有其他麻烦。

答案 1 :(得分:0)

如果您确实将查找表分为单独的DATABASE,请确保GRANT SELECT访问需要访问它们的任何人。

通常,将为用户或应用程序提供单数据库访问,例如

GRANT ALL PRIVILEGES ON db_foo.* TO app_foo@... IDENTIFIED BY ...;

这也需要

GRANT SELECT on Lookups.* TO app_foo@...;

访问将类似于

SELECT some_table.blah, Lookups.Countries.country_name
     FROM some_table     -- I'm assuming you are 'in' `db_foo`
     JOIN Lookups.Countries
       ON some_table.country_id = Lookups.Countries.id

SELECT t.blah, c.country_name
     FROM some_table  AS t
     JOIN Lookups.Countries  AS c
       ON t.country_id = c.id