Программисты,
Я пишу приложение на C #, которое будет взаимодействовать с базой данных SQL для получения информации о производственных процессах.
ФОН
Каждый отдельный производственный процесс имеет уникальный целочисленный идентификатор StageID.
Все процессы записывают общую информацию (состояние PASS / FAIL и т. Д.) В таблицу ProcessMaster
.
Некоторые процессы записывают дополнительные данные в пользовательские таблицы и используют первичный ключ из ProcessMaster
для формирования взаимосвязи.
Я могу написать несколько хранимых процедур для получения данных. Существует стандартная хранимая процедура, которая просто получает ProcessMaster
данные на основе StageID
. Это работает для всех процессов.
Но на индивидуальной основе я пишу пользовательскую хранимую процедуру для тех процессов, которые имеют дополнительные данные в своих собственных таблицах. В этом случае я выполняю соединение таблиц в хранимой процедуре, чтобы получить стандартные ProcessMaster
данные и дополнительные данные.
Примером процесса, который имеет пользовательскую хранимую процедуру, может быть система измерения, которая, помимо хранения данных PASS / FAIL и стандартных ProcessMaster
, также сохраняет набор результатов измерений в своей собственной таблице.
ПРОБЛЕМА
Я пишу приложение на C #, которое предоставляет интерфейс для всего этого. Я хочу, чтобы пользователь выбрал процесс, а затем смог получить данные для него на основе диапазона дат.
Если выбранная стадия имеет пользовательские данные ProcessMaster
и , я хочу, чтобы была возможность выбрать, включать ли только ProcessMaster
или все доступные данные.
ТЕКУЩАЯ ИДЕЯ
Моя текущая идея - использовать некоторые соглашения об именах с хранимыми процедурами. Таким образом, я могу обнаружить их во время выполнения и соответствующим образом обработать в моем приложении C #.
Если / когда будущие хранимые процедуры станут доступны (например, для нового процесса), то при условии соблюдения установленного соглашения об именах эти процессы сразу же станут доступны для перечисления в моем приложении интерфейса данных C #.
SUGGESTIONS
Меня интересуют ответы на концепции программирования от пользователей StackOverflow, которые регулярно взаимодействуют с SQL в своих приложениях. Я что-то пропустил? Есть ли лучший способ достичь этой цели? Например: возможно ли включить метаданные в саму хранимую процедуру, которую я мог бы обнаружить во время выполнения?