Это приложение WinForms.
Между строками в TABLEA и TABLEB существует отношение "многие ко многим". В TABLELINK существует запись для каждой строки в TABLEA, которая связана со строкой в TABLEB. Подумайте «пользователи» и «роли» или что-то в этом роде: каждая запись TABLELINK указывает на то, что «пользователь X имеет роль Y».
Я просматриваю записи TABLEA, используя объекты привязки данных. Нет проблем. Это не сетка, а форма с отдельными элементами управления TextBox.
Я хочу отобразить группу флажков, каждый из которых соответствует строке в TABLEB. Я хочу связать данные TABLELINK со свойством «флажка» каждого флажка, поэтому флажок Y устанавливается, когда мы смотрим на запись X, если и только если существует запись TABLELINK, совпадающая с этими X и Y.
У меня есть куча времени на создание этого отношения и его привязку к флажкам, которые должны быть созданы во время выполнения, потому что дизайнер не знает, сколько их будет. Концептуально, в SQL это select count(*) from tableb left join tablelink on tableb.y = tablelink.y where tablelink.x = ? group by tableb.y
, но я застрял на том, как привязать это к отдельным флажкам.
Мой вопрос, состоящий из двух частей: а) Хорошо ли я спроектировал это с самого начала? б) Если да, как связать результаты этого запроса (или аналогичного) с отдельными флажками?