Что вы называете понятием динамического определения данных? - PullRequest
0 голосов
/ 12 мая 2010

Может быть, это проще и понятнее, чем я думаю, но я не могу найти эту концепцию в Google где-либо. Концепция такова:

У вас есть таблица в базе данных, и таблица имеет указанное количество столбцов. Однако предыдущие клиенты спрашивали меня, что существует также набор динамических пользовательских столбцов, которые можно добавлять на лету.

Как называется эта концепция и считается ли она шаблоном дизайна?

Ответы [ 2 ]

1 голос
/ 12 мая 2010

Вы, вероятно, говорите о парах имя-значение.

Как это:

UserProfile
-----------
UserID  PropertyName  PropertyValue

Но это не значит, что вы добавляете столбцы в таблицу динамически. Так не делается.

Официально она известна как модель значения атрибута сущности .

0 голосов
/ 12 мая 2010

Я подозреваю, что клиенты должны иметь возможность создавать объекты, хранящиеся в базе данных, с настраиваемыми полями.

Есть несколько подходов:

Вы можете создать таблицу с общими полями сущностей (id, dateCreated, dateModified, isVisible, typeId ...) и сохранить дополнительные специальные поля в xml-поле (одна таблица для всех типов сущностей).

Если тип данных Xml выглядит слишком старым для хранения данных, вы можете использовать nvarchar, где атрибуты хранятся в нотации JSON. Двоичный формат также можно использовать, если размер имеет значение :)

Или вы можете создать связанную таблицу для хранения определенных атрибутов объекта. Этот подход реализован в поставщике профиля asp.net по умолчанию: таблица для пользователей и таблица для профиля пользователя с парами [userId, имя-атрибута профиля, значение-атрибута профиля

Что выбрать, зависит от других требований.

...