続けるべき情報はそれほど多くありませんが、リストしたものは問題ないはずです。(「タグ」は業界テーブルの「説明」フィールドなどです)
ご想像のとおり、実際の作業はすべてSQLの外部で行われるため、次のことを行う必要があります...
- (潜在的に)まだ存在していない新しいタグを追加します。
- 業界を提供されたタグに関連付けます。
- (潜在的に)使用されなくなった可能性のある以前に使用されたタグを削除します。
...業界を編集するたびに。
とはいえ、提案された設定の主な制限は、各企業が単一の業界にしか所属できないことです。(つまり、関連付けられる業界タグは1つだけです。)
そのため、次のようなスキーマを検討することをお勧めします...
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