Вот макет :
- Я разрабатываю внутреннее веб-приложение ASP.NET (в VB.NET) с базой данных SQL Server.
- Так как мои пользователи строго внутренние, я использую метод "Windows" для автоматической аутентификации.
- У меня есть четыре пользовательских роли, каждая из которых имеет свой уникальный и динамический набор настроек.
- БОНУС: У каждого пользователя может быть несколько ролей и, следовательно, несколько профилей.
Из моего обширного исследования я определил следующие два метода для хранения настроек профиля пользователя (оба из которых вызывают вопрос «КАК?»), Хотя я не уверен, , что лучше (если есть):
- Сохранение профилей и связанных с ними настроек в БД (Какую структуру использовать? Из предварительного сопоставления я создал как минимум четыре таблицы, которые начинают становиться совершенно неуправляемыми и неуправляемыми)
- Использовать встроенный объект членства и профиля ASP.NET ? (Я не могу найти хороший учебник по этому вопросу. Требует ли этот метод поддержки БД? Опять же, с использованием какой структуры таблицы?) - Меня больше всего интересует это возможное решение
* +1032 * Пример: * 1 033 *
Моей самой сложной группе пользователей требуется возможность сохранять профиль всех (выбранных пользователем) продуктов, связанных с пользователем. Скажем, я менеджер по продукту и хочу, чтобы в моем аккаунте показывались все продукты, которые я выбрал, за которые я отвечаю. Очевидно, что каждый член моей роли будет иметь разные продукты и разное их количество и т. Д. Возможно, настройки страницы пользователя (например, поиск, сортировка, настройки по умолчанию и т. Д.) Могут быть сохранены в общей таблице с ссылка на таблицу вспомогательных настроек для странных вещей, которые могут быть связаны с помощью специальной записи, которая может выступать в качестве «внешнего ключа».
По запросу одна моих идей для плана стола:
Users (ID, Username, RoleID)
Roles (ID, RoleName, Description) --Lookup Table
Settings (ID, Name, Value)
UserSettings (ID, UserID, SettingID) --Junction Table
Тогда возникают вопросы:
- Когда мне использовать строку против столбца?
- Если я использую столбец для каждого параметра, я могу определить типы данных, но количество столбцов может выйти из-под контроля. С другой стороны, если я использую строку для параметра, это имеет гораздо больший смысл, но я теряю контроль над типом данных для параметра.
- Должен ли я опустить таблицу UserSettings и просто добавить запись пары имя = значение для каждого параметра в таблице настроек с помощью внешнего ключа UserID?
- и т. Д. И т. Д. *
Мой идеальный ответ:
Как видите, у меня много вопросов, и я нашел, по-видимому, небольшую помощь. Я бы ЛЮБОВЬ это, если бы кто-то мог сломать это для меня в простых терминах . Скажите, пожалуйста, свои профессиональные рекомендации и несколько очень простых советов о том, как его реализовать (например, какие объекты ASP.NET использовать, а также о том, как указанные объекты предоставляют механизм для управления моим сложные профили)