如何在第三列中插入数据时保留两列的唯一组合


How to preserve unique combination of two columns when inserting data in 3rd column?

我在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,禁止将company_name与不同的tax_id一起使用。欢迎任何帮助,也欢迎任何代码示例。

由于您的tax_idcompany_name具有一对一的映射,因此建议您规范化数据库。应tax_id to company_name mapping移动到其他表,并将company_nametax_id保留在当前表中。您可以使用JOIN来挤出所需的任何信息。

如果无法更改数据库结构,则必须查询数据库company_name是否有tax_id,然后将后续信息用于插入查询。

有关详细信息,请查看数据库规范化

我会使用 2 个表:

  • 公司
  • 商店

公司包含tax_id和company_name。存储包含作为外键和store_name的tax_id。

然后,您可以使tax_id和company_name成为唯一且tax_id的主要

内容