как интегрировать таблицу aspnet_users (членство в asp.net) в мою существующую базу данных - PullRequest
0 голосов
/ 22 мая 2010

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

КОЛОННЫ:
userID - int
loginName - строка
Первая - строка
Последняя -строка

Я только что установил таблицу членства asp.net.Прямо сейчас все мои таблицы объединены в внешний пользовательский ключ моей таблицы пользователей в поле «userId»

Как мне интегрировать таблицу asp.net_users в мою схему?Вот идеи, о которых я подумал:

  1. Добавьте поле members_id в мою таблицу пользователей и на новых вставках добавьте это новое поле в мою таблицу пользователей.Это кажется самым чистым способом, так как мне не нужно разрывать любые существующие отношения.

  2. разорвать все существующие отношения и переместить все поля в моей пользовательской таблице в таблицу asp.net_users.Это похоже на боль, но в конечном итоге приведет к самому простому, нормализованному решению

Есть мысли?

Ответы [ 2 ]

2 голосов
/ 23 мая 2010

Я регулярно использую все виды стеков провайдеров с большим успехом.

Я собираюсь продолжить с уважительным наблюдением, что ваш опыт работы со стеком SqlProvider ограничен и что путь наименьшего сопротивления вам кажетсябыть разделенным на aspnet_db.

Абстрактный стек провайдера предоставляет четко разделенные наборы функций, которые дополняют и взаимодействуют друг с другом интуитивно понятным способом ... если вы потратите время, чтобы понять, как это работает.

Кроме того, SqlProviders, хотя и не идеальны, предоставляют очень надежное хранилище резервных копий для обширных средств персонализации и безопасности, которые лежат в основе среды выполнения asp.net.

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

Не поймите меня неправильно, я не говорю, чтобы не настраивать провайдеров.В этом весь смысл абстрактного фабричного паттерна.Но прежде чем вы возьмете на себя задачу объединения в базу данных / схему / критическую инфраструктурную систему, вам следует лучше понять ее.

И как только вы достигнете этого, вы начнете понимать, насколько простой может быть жизнь.если вы сконцентрируетесь на том, как заставить системы, которые имеют тысячи человеко-часов времени для разработчиков и бесчисленное количество пользователей каждую минуту каждого дня, работать на вас, тем более актуальную работу вы будете выполнять над вещами, которые действительно интересуют вас и ваших заинтересованных сторон.

Итак - позвольте мне предложить вам импортировать ваших пользователей в стек aspnet_db / sqlprovider и использовать предоставляемые возможности.

UserId в aspnet_db является guid и должен оставаться таким по очень многим причинам.Если вам нужно сохранить оригинальный встроенный идентификатор пользователя - сохраните его в поле мобильного пин-кода для справки.

Членство - это место, где вы хотите разместить информацию, которая имеет отношение к безопасности и идентификации.Имя пользователя, пароль и т. Д.

Профили - это то место, где вы хотите разместить изменчивые мета, такие как имена и предпочтения сайта.

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

Удачи.

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

По моему опыту, «поставщик членства ASP.NET» вносит больше сложности, чем решает. Поэтому я бы выбрал вариант 2: пользовательскую таблицу.

P.S. Если кто-то успешно использовал «поставщика членства ASP.NET», пожалуйста, оставьте комментарий!

...