Разработка расширенных свойств для объекта со сложными данными внутри - PullRequest
0 голосов
/ 11 марта 2010

У меня есть вопрос дизайна. У меня есть сущность, такая как «Персона». У человека есть такие свойства, как: Имя, Фамилия, Пол, Дата рождения, .... Конечному пользователю при создании человека в приложении может потребоваться определить другое свойство, которое не определено в схеме таблицы базы данных (или человек класса). например: конечный пользователь должен определить «property1», что его строковое свойство. или не нужно определять "proerty2", что это изображение, или нужно определить "property3", что его сложный тип.

Пожалуйста, выделите ваше дизайнерское решение на уровне буксира: Дизайн таблицы с 1 базой данных
2-х классный дизайн

технология: .NET Framework, SQL Server, WCF (все объекты должны быть сериализованы по проводам, специальные завершенные данные в расширенных свойствах)
спасибо.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2015

Это выглядит как Модель Entity-Attribute-Value . Ищите реализации для вашего технологического стека.

0 голосов
/ 12 марта 2010

Вот вам для начала, хотя было бы полезно больше информации, например, на какой платформе вы работаете.

Вы можете попробовать подход пары «значение / ключ», хотя вам нужно будет расширить это, чтобы можно было назначать разные значения для разных экземпляров сущности.

В вашей базе данных может быть таблица с:

  • Уникальный идентификатор строки
  • Идентификатор объекта
  • ключ свойства
  • значение свойства

Если вы собираетесь использовать это для других типов сущностей, вам понадобится дополнительный столбец для разделения этих типов.

Если вы работаете в .Net, вы можете создавать интерфейсы, которые описывают определенные свойства, с которыми вы хотите работать на уровне API.

Вы можете получить доступ к свойствам в базе данных через класс, который служит «утилитой свойств», он будет использоваться внутри объекта или фабрикой, которая их создает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...