我有两个使用相同查找表(包括国家,州,类似语言的表)的数据库。目前,这些查找表位于数据库之一中。
我应该将这些查找表存储在单独的第三个数据库中吗? 在联接过程中将它们分开会带来任何负担吗?
我对此进行了搜索,但只发现了数据库内部问题。
答案 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