雖然沒有大量的信息繼續下去,但你列出的應該沒問題。 ('tag'是行業表中的'description'字段等)
正如你所想,所有的真實工作都是在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
我已經用更多的例子更新了我的答案 - 希望它會更有意義。 :-) – 2010-01-24 01:20:16