Проектирование базы данных: ссылка на несколько связанных таблиц - PullRequest
0 голосов
/ 03 декабря 2018

Прошу прощения за смутное название, но я не знаю, как точно определить мою проблему ...

Мой вопрос основан на следующем условии:

Таблица называется«компоненты», содержащие некоторые компоненты с их дополнительной информацией Таблица под названием «спецификации», содержащая некоторые спецификации с их дополнительной информацией, где каждая спецификация относится только к одному компоненту

До сих пор я следовал стандарту ОДИН-Подход TO-MANY с использованием идентификатора «компонентов» в качестве внешнего ключа в «спецификациях».Теперь, вот моя проблема: я хотел бы иметь третью таблицу , называемую "сценариями", которая хранит в каждой строке - среди прочего - для каждого возможного компонента в "компонентах" ровно одну из спецификаций, принадлежащихк этому компоненту.Как я могу это сделать?

Один из подходов, о котором я подумал, - это добавление столбца в «сценарии» для каждого компонента, например:
--------------------------------
| component_id | component_name |
--------------------------------
|   1          |   C1           |
|   2          |   C2           |
--------------------------------

-------------------------------------------------------
| specification_id | component_id | specification_name |
-------------------------------------------------------
|   1              |   1          |   S1               |
|   2              |   1          |   S2               |
|   3              |   2          |   S3               |
|   4              |   2          |   S4               |
-------------------------------------------------------

----------------------------------------------------------------------------------------------------
| scenario_id | specification_id_for_component_with_id_1 | specification_id_for_component_with_id_2 |
----------------------------------------------------------------------------------------------------
|   1         |   2                                      |   3                                      |
----------------------------------------------------------------------------------------------------

Но я бы хотел убедиться, что спецификации действительно существуют и принадлежатк указанному компоненту.Кроме того, для каждого нового компонента необходимо было изменить таблицу «сценариев».Должен быть лучший подход ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...