При использовании ASP.Net Membership и дополнительной таблицы для хранения информации о пользователе, я должен связать другие таблицы с aspnet_Users или моей собственной таблицей? - PullRequest
8 голосов
/ 21 декабря 2009

Я использую членство в ASP.Net для защиты своего сайта, и у меня есть вопрос о том, как хранить дополнительную информацию о пользователе. Погуглив и прочитав другие вопросы, я думаю, что 3 принятых подхода к хранению дополнительных данных

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

Я создал новую таблицу в дополнение к таблицам членства ASP.Net с именем User_Information, которая имеет внешний ключ «один к одному» для aspnet_Users. Когда я создаю новую таблицу для хранения информации, связанной с пользователем (например, комментарии, голоса и т. Д.), Я должен установить внешний ключ, чтобы указать aspnet_User или мою таблицу User_information?

спасибо

Ответы [ 3 ]

2 голосов
/ 21 декабря 2009

Это зависит от характера ваших запросов.

Поставщик членства предоставит вам легкий доступ к столбцу идентификатора пользователя из таблицы aspnet_Users. Для получения идентификатора из вашей таблицы потребуется дополнительный запрос.

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

2 голосов
/ 21 декабря 2009

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

Рекомендую не создавать какой-либо внешний ключ и продолжать этот дизайн.

0 голосов
/ 21 декабря 2009

Я выбираю таблицу aspnet_User. В конце концов, она считается «основной» таблицей для информации о пользователе, нет?

...