我在mysql表中有三列:tax_id,company_name,store_name。我需要tax_id和company_name是唯一的组合,tax_id或company_name不能与另一个company_name或tax_id分开存在。另一件事是我需要在公司拥有的不同(所有)商店中加入第三列名称。表的示例应为:
tax_id| company_name| store_name
1324 | Kmart | 1st ave
1324 | Kmart | broadway
1324 | Kmart | 5th ave
7725 | DM | shop 1
7725 | DM | shop 2
7725 | DM | shop 7
etc...
禁止在不同公司使用tax_id,或禁止使用不同tax_id的company_name。 欢迎任何帮助,也欢迎任何代码示例。
答案 0 :(得分:1)
我会使用2个表:
公司包含tax_id和company_name。 商店包含tax_id作为外键和store_name。
然后,您可以使tax_id和company_name唯一,并使tax_id为主
答案 1 :(得分:1)
由于您的tax_id
和company_name
具有一对一的映射关系,因此建议您规范化数据库。您应该将tax_id to company_name mapping
移至其他表格,并在当前表格中保留company_name
或tax_id
。您可以使用JOIN
来挤出所需的任何信息。
如果您无法更改数据库结构,则必须查询数据库以查找company_name是否具有tax_id,然后使用插入查询的后续信息。
有关详细信息,请查看database normalization