Извините за смутный заголовок.
У нас есть вариант использования, в котором мы можем получить 0 для многих ролей, и из этого списка нам нужно установить «значение по умолчанию»
Например, сказать мы сканируем текст документа (do c 1) на наличие ролей и находим роль x, y, z, а другой документ (do c b) находим роли a, b, y. И третий документ (сделайте c 2), мы находим роль y.
У нас есть бизнес-правило, которое говорит, что если мы находим роли x, y, z, все вместе выбираем z. Если мы найдем x, z вместе вернем не по умолчанию. Если мы найдем, выберите, независимо от того, какие другие роли с ним. И если мы найдем только одну роль, по умолчанию эта роль.
Если бы правила были жесткими и быстрыми, я мог бы легко сделать это как гигантский оператор переключения или что-то в коде, но все может измениться на лету поэтому я хотел бы сохранить это в базе данных или что-то такое, чтобы я мог просто сделать что-то вроде:
PsuedoSelectDefault(Inputs[])
If inputs.length == 0
Return ""
Else of inputs.length == 1
Return inputs[0]
Else
Return RunSomeSql(Inputs)
// Where RunSomeSql choses the default for me.
Но я в растерянности из-за структуры этой базы данных. 1012 *
Я предполагаю, что это не новая проблема, но я не уверен, какие ключевые слова мне следует искать.
Если кто-то может указать мне правильное направление, это будет с благодарностью.