Для хранения ваших данных в реляционной базе данных вам нужна одна таблица, в которой хранятся все ваши данные виджета (при условии, что нет общих повторяемых данных, например, тип виджета, который должен храниться в таблице поиска - выполните поиск в Интернете). для нормализации базы данных).
Затем, после создания таблицы данных, вы можете получать виджеты по любой комбинации полей с помощью запроса к базе данных.
Если вы имеете в виду структуру данных в коде, просто создайте класс списка, например
public class Widgets : List<Widget>{
}
и реализуйте различные методы поиска в зависимости от ваших критериев поиска.