Допустим, у меня есть следующие таблицы:
Таблица задач:
Task ID, Task Name, Capability ID
Таблица возможностей:
Capability ID, Capability Name
Таблица применения:
App ID, App Name, App File
Таблица компонентов:
Component ID, Model, Manufacturer, Revision
Где:
- Я хочу, чтобы у задачи была одна связанная возможность.
- Каждая возможность состоит из набора определенных компонентов с набором специальных приложений, работающих на них.
Так, например, у нас есть задача1, которая использует возможность1. Capability1 требует:
- Компонент1 работает {App1 и App2}
- Компонент2 работает {App2}
Итак, чтобы решить эту проблему, я создал таблицу ссылок следующим образом:
Возможные детали:
Capability ID, Component ID, App ID
Где все три столбца составляют первичный ключ. Такое ощущение, что это нужно разделить дальше, но я не понимаю, как это сделать (или требуется ли это вообще). Я думаю, что удовлетворены базы данных нормальных форм 1-3.
Это правильно (с точки зрения нормализации базы данных) или есть какие-то дальнейшие оптимизации, которые я могу сделать?