【发布时间】:2014-09-18 12:37:56
【问题描述】:
我必须让我的数据库能够翻译一些术语。 这是我的数据库的基本图:
第一张桌子(还有更多类似的):
create table objects
id int PRIMARY KEY,
name varchar(50),
name_id int FOREIGN KEY,
第二张桌子:
create table language
language varchar(20)
language_id PRIMARY KEY
第三张表:
create table translations
language_id FOREIGN KEY,
name_id UNIQUE KEY,
translation varchar(50)
看起来像这样:
对象:
id | name | name_id
___|______|________
1 |apple |1
语言:
language_id | laguage
____________|________
1 | ENG
____________|________
2 | DEU
翻译:
language_id | name_id | translation
____________|_________|____________
1 | 1 | apple
____________|_________|____________
2 | 1 | apfel
现在,翻译中的两个列 language_id 和 name_id 都必须是唯一的。但只有一个,name_id 必须引用表对象中的外键。
有可能吗?如果没有,还有什么办法?
【问题讨论】:
-
我在 Oracle 中收到的错误消息:确保引用列与被引用列匹配。
标签: sql database-design localization foreign-keys unique-constraint