Динамические c атрибуты в базе данных для вопросов маршрутизации ответа на вопрос - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть одно требование для реализации структуры базы данных для потока ответов на вопрос в зависимости от географического местоположения.

Скажем, у нас есть три уровня:

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 атрибутов?

Любая помощь будет высоко оценена.

...