У меня есть одно требование для реализации структуры базы данных для потока ответов на вопрос в зависимости от географического местоположения.
Скажем, у нас есть три уровня:
state country region
Maharashta India Asia Pacific
Delhi India Asia Pacific
California USA Americas
Итак, требование состоит в том, что если человек из Дели задает вопрос, то сначала мы должны назначить его некоторым экспертам из Дели.
Итак, уровни эскалации должны быть:
First: (state, country, region)
Second: (country, region)
Third: (region)
Означает, что я не найду эксперта на уровне 1, то есть с комбинацией (state, country, region)
, тогда я должен проверить (country, region)
, и если эксперт не найден на этом уровне тоже просто отметьте (region)
.
А потом мы добавим еще один город уровней:
city state country region
Pune Maharashta India Asia Pacific
Janakpuri Delhi India Asia Pacific
Los Angeles California USA Americas
Теперь мои уровни становятся следующими:
First: (city, state, country, region)
Second: (state, country, region)
Third: (country, region)
Fourth: (region)
Итак, дизайн должен быть динамичным c. В будущем мы можем добавлять или удалять уровни в любой момент времени.
И мне даже не нужно называть уровни городом, штатом, страной или регионом. Что делать, если я просто обращаюсь к ним как к атрибутам маршрутизации.
Поскольку эти уровни связаны с некоторыми таблицами в БД, и, соответственно, мы написали запросы на бизнес-уровне. Итак, нам нужно изменить эти запросы, так как после удаления одного уровня он должен извлекать данные только с объединением трех таблиц.
И в MySQL я не могу сохранить имя таблицы внутри другой таблицы, это может помогите мне сделать запросы динамическими c на бизнес-уровне таким образом, чтобы любые динамические c атрибуты выбирались, просто присоединяйте их для выполнения запроса. Также мы всегда должны знать номер атрибута уровней, например:
atr1 str2 atr3 atr4
Pune Maharashta India Asia Pacific
Janakpuri Delhi India Asia Pacific
Los Angeles California USA Americas
Как эти уровни можно динамически использовать в БД, а затем для запросов, выполняемых на бизнес-уровне? Существуют ли какие-то стандартные методы, которым нужно следовать для таких проблем, требующих динамических c атрибутов?
Любая помощь будет высоко оценена.