虽然没有大量信息可以继续,但您列出的内容应该没问题。(“标签”是行业表中的“描述”字段等)
正如您可能想象的那样,所有实际工作都在 SQL 之外完成,您需要在其中...
- (可能)添加尚不存在的新标签。
- 将行业与提供的标签相关联。
- (可能)修剪以前使用的可能不再使用的标签。
...每次编辑行业时。
也就是说,您提议的设置的主要限制是每家公司只能属于一个行业。(即:它只能有一个与之关联的行业标签。)
因此,您可能需要考虑以下架构...
Company
id
...
countryOfOrigin
Industries
id
description
CompanyIndustriesLookup
companyID
industryID
...这将使您将多个行业/标签与给定的公司相关联。
更新...
例如,在此设置下,要获取与公司 ID 1 关联的所有标签,您可以使用...
SELECT Industries.description FROM (CompanyIndustriesLookup, Industries)
WHERE companyID=1 AND industryID=Industries.ID
ORDER BY Industries.description ASC;
在类似的基础上,要让所有公司都贴上“测试”行业的标签,你可以使用...
SELECT Company.name FROM (Company, Industries, CompanyIndustriesLookup)
WHERE Company.id=CompanyIndustriesLookup.companyID
AND Industries.id=CompanyIndustriesLookup.industryID
AND Industries.description="testing"
ORDER BY Company.name ASC