В настоящее время я работаю над проблемой для работы, где мне нужно брать данные и обрезать сгенерированные сценарии на основе пользовательских ограничений. Я пробовал множество вещей, но, похоже, не мог заставить ничего работать так эффективно, как хотелось бы. Мне, возможно, придется работать за пределами БД, чтобы я мог масштабировать прогон, но подумал, что я должен попытаться выполнить внутри БД, если это возможно. Так, например, если у меня есть 3 сущности:Как эффективно обрезать данные
Transportation Type:
Car
Boat
Plane
Color:
Blue
Green
Red
Purple
White
Accessories:
Trailer
Wheels
Propeller
Parachute
Пользователи могли войти ограничение:
Transportation_Type=Boat, Accessories= Wheels
Таким образом, любая комбинация, где был сценарий, который имел лодки и колеса будут ограничены.
Example Valid Scenario with restriction: Boat/Red/Trailer
Так где это становится сложнее, что вы можете себе представить, что если я построить все возможные сценарии для 3-х лиц, которые не так уж плохо, даже при определенных пользователем ограничений. Но, что, если есть 22 объекта (сущности - это в основном уровень со значениями). Вы можете себе представить, что это может стать огромным и будет трудно применять ограничения. Особенно, когда это набор уровней/значений (так, как лодка и колеса), которые составляют ограничение.
У кого-нибудь есть мысли?
Я смог заставить его быть действительно исполнительным через примерно 14-16 уровней, построив динамические подобные утверждения, чтобы я мог проверить полученный сценарий. Но после этого время процесса взрывается (что может быть на более низких уровнях, если на уровне было намного больше значений).
Что таблицы баз данных выглядеть? –
Привет Гордон. В настоящее время сущности не являются отдельными. Они хранятся в соседнем списке (родительский ребенок), а ограничения определяются в наборах ... так что (комбинации ограничений, которые составляют набор ограничений) – scarpacci