我一直在清理一个有点噩梦的数据库表。
我想确保正在输入的数据是正确的。所以我读到了外键约束。
以下是输入数据的表格。
tblSales
Country Seller Value
52 01 100
86 01 100
102 32 100
32 52 100
52 01 100
我想确保将输入的值输入Country&卖方字段是一组特定值。还有一个名为tblMap的表,它用于报告,为数字提供易于阅读的名称。
tblMap
Factor Code Name
Country 52 US
Country 86 Germany
Country 102 Spain
Country 32 Italy
Seller 01 Bob
Seller 32 Sarah
Seller 52 Jim
就像我说我打算使用外键约束但是我不能在tblMap的Code字段上创建主键,因为52用于国家和卖家。我也无法更改代码编号。
我仍然可以使用外键约束来确保在tblMap中存在输入到tblSales的任何值吗?
答案 0 :(得分:1)
您可以将tblMap
替换为2个表tblMapCountry
和tblMapSeller
<强> tblMapCountry 强>
Code Name
52 US
86 Germany
102 Spain
32 Italy
<强> tblMapSeller 强>
Code Name
01 Bob
32 Sarah
52 Jim
你可以基础
最后,您可以通过联合2 tblMap
和tblMapCountry
tblMapSeller
create view `tblMap`
as
select 'Country' as Factor,Code,Name from tblMapCountry
union all
select 'Seller' as Factor,Code,Name from tblMapSeller