Я разработал базу данных для программы управления транспортом. И одна часть вроде бы в порядке, но я не знаю, как сохранить комбинацию из Package, Price и Version в Project, чтобы избежать циклической ссылки.
Просто краткое объяснение базы данных: у пакета может быть от одной до многих цен и от одной до многих версий. Таким образом, цены не зависят от версии. Например. если у вас есть 2 версии, они имеют одинаковую цену. Версия может иметь от одной до многих единиц оборудования, а также оборудование может принадлежать многим версиям. Пользователь фильтрует пакет и выбирает пакет, после чего выбирает версию и цену и сохраняет их в Project_Has_Packages. Так же, как вы видите на картинке. Изображение проекта базы данных
Мой подход заключался в том, что имя пакета исходит только из таблицы пакетов, а имя версии и имя цены — из конкретных таблиц. В таблице цен и таблице версий мне нужно имя пакета, чтобы сделать записи уникальными, потому что это могут быть «Пакет1», «Версия1» и «Версия2», а также «Пакет2» с «Версия1» и «Версия2». ». Версии отличаются из-за различного оборудования, которое принадлежит Версии. Если я сделаю VersionName уникальным («ver1 Pack1»), то база данных больше не будет нормализована. Есть ли возможность избежать циклической ссылки и как я могу изменить дизайн, чтобы избежать этого? Целый день думаю об этом и больше не вижу леса за деревьями.