我在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_id
和company_name
具有一对一的映射,因此建议您规范化数据库。应tax_id to company_name mapping
移动到其他表,并将company_name
或tax_id
保留在当前表中。您可以使用JOIN
来挤出所需的任何信息。
如果无法更改数据库结构,则必须查询数据库company_name是否有tax_id,然后将后续信息用于插入查询。
有关详细信息,请查看数据库规范化
我会使用 2 个表:
- 公司
- 商店
公司包含tax_id和company_name。存储包含作为外键和store_name的tax_id。
然后,您可以使tax_id和company_name成为唯一且tax_id的主要