Несмотря на то, что нет большого количества информации для продолжения, то, что вы перечислили, должно быть хорошо. («Тег» - это поле «описание» в отраслевой таблице и т. Д.)
Как вы можете себе представить, вся настоящая работа выполняется вне SQL, где вам нужно ...
- (Потенциально) добавить новые теги, которые еще не существуют.
- Свяжите отрасль с поставляемыми тегами.
- (Потенциально) удаляет ранее использованные теги, которые могут больше не использоваться.
... каждый раз, когда вы редактируете отрасль.
Тем не менее, ключевым ограничением предлагаемой вами установки является то, что каждая компания может принадлежать только к одной отрасли. (т. е. с ним может быть связан только один отраслевой тег.)
Таким образом, вы можете рассмотреть схему в соответствии с ...
Company
id
...
countryOfOrigin
Industries
id
description
CompanyIndustriesLookup
companyID
industryID
... что позволит вам связать несколько отраслей / тегов с определенной компанией.
Обновление ...
Например, при этой настройке, чтобы получить все теги, связанные с идентификатором компании 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