Пользовательские поля для формы, представляющей объект

У меня есть архитектурный вопрос, касающийся пользовательских полей в представлении для объекта. Допустим, у вас есть объект пользователя с какой-то базовой информацией, такой как FirstName, LASTNAME, ... который можно использовать всеми клиентами.

Теперь, часто мы получаем вопрос от клиента, чтобы добавить пару пользовательских полей, типичных для их домена. Наше решение сейчас колонна данных XML, где хранятся пары значения клавиш. Это было в порядке, но теперь нам придется найти более архитектурное решение.

Например, теперь клиент хочет выпадать, где он может выбрать значение для его пользовательского поля. Мы все еще можем хранить выбранное значение в столбце данных XML, но где мы храним все эти раскрывающиеся значения ...

Я знаю, что в SharePoint вы также можете добавить пользовательские поля, такие как выпадающие, и мне было интересно, как иметь дело с этим Лучший. Я хочу избежать создания пользовательских таблиц для клиентов, или имея таблицу с 90 столбцами (10 базовых, а затем 10 для каждого клиента), ...

Вы получаете идею, она должна быть общими и иметь возможность иметь дело со всеми Виды проблем в будущем.

То, о чем я думал, это таблица Userconfiguration, где каждая запись имеет внешний ключ к клиенту (канал в нашей базе данных), а затем поле поля столбца, столбец FieldType и значения столбца. Значения столбцов должны быть столбец типа XML, поскольку для раскрывающегося списка нам нужно добавить несколько значений. Кроме того, каждое значение может иметь дополнительные данные, прикрепленные к нему (не только имя). Другая проблема, как хранить выбранное значение. Мне не нравится идея иметь внешние ключей к XML в моей базе данных (прочитайте где-нибудь, что Azure не может справиться с этим всем в хорошем состоянии). Вы просто храните имя стоимости (что, если значение должно было исчезнуть из XML?)?

Любая документация, ссылки на такие проблемы также были бы здоровы. Я пытаюсь найти рисунок дизайна, который касается этой проблемы в базе данных.

5
задан Lieven Cardoen 13 September 2011 в 19:05
поделиться