Создание пользовательских объектов и сохранение их в SQL server
Мне нужно создать приложение для управления пользовательскими объектами со следующими характеристиками:
1) из формы пользователь может создавать базовые пользовательские объекты, которые будут представлять собой детали/компоненты. Например, создайте объект типа "датчик температуры". Этот объект будет иметь пользовательские свойства, такие как "температурный тег (строка)", "Минимальная температура (поплавок)" и "максимальная температура (поплавок)". Другим типом объекта может быть двигатель с такими свойствами, как скорость, мощность и т. д.
Примечание: типы объектов будут создаваться с помощью формы с возможностью их последующего редактирования путем добавления или удаления свойств.
2) в другой форме пользователь сможет создавать экземпляры объектов (sensor1, sensor2, motor1 и т. д.) и просматривать и вводить значения свойств в табличном формате (у нас будут сотни экземпляров).
3) из другой формы пользователь сможет создавать объекты более высокого уровня, которые будут содержать основные свойства (строки, поплавки и т. д.), а также основные объекты, такие как "датчик температуры" или "двигатель".
Например, тип объекта-под названием "кондиционер", который будет иметь 1 Основное свойство называют "установками Град" (строка), объект measuredtemperature (temperature_sensor типа) и объекта вентиляционного (тип двигателя).
4) После определения основных типов (датчик и двигатель) и типов объектов высокого уровня (кондиционер) мы могли бы затем создать несколько экземпляров этого объекта высокого уровня, например AirCon1, AirCon2 и т. д.
Если мы затем изменим тип объекта на любом уровне, то изменения должны каскадировать во всех экземплярах.
Типы объектов и их свойства должны храниться в базе данных, такой как SQL Server.
Я ищу не код для решения этой проблемы, а скорее руководство по наилучшему подходу. Вероятно, существуют библиотеки или технологии, которые могут сделать это довольно легко...
Что я уже пробовал:
Варианты, как я это вижу:
1 - напишите код, который строит таблицы базы данных динамически во время выполнения, когда мы определяем типы объектов, т. е. добавляем столбец для каждого свойства и удаляем/переименовываем по мере редактирования объектов. Вероятно, трудно изменить определения таблиц, когда в них уже есть данные. Кажется грязным.
2 - Создайте статические таблицы с большим количеством запасных столбцов, которые будут распределены по свойствам объекта. Грязно, не знаю, как создавать типы объектов, которые содержат больше типов объектов внутри.
3 - Создайте статическую таблицу со столбцом типа xml и попробуйте поместить все свойства в формат xml. вероятно, сложная для сопоставления XML-столбца на несколько столбцов элемента управления DataGrid?